Узнаем какая сессия блокирует пакет Oracle

Чтобы узнать какая сессия блокирует пакет:

SELECT s.*,
       l.lock_type,
       l.mode_held,
       l.mode_requested,
       l.lock_id1,
       'alter system kill session '''|| s.sid|| ','|| s.serial#|| ''' immediate;' kill_sid
FROM   dba_lock_internal l,
       v$session s
WHERE  s.sid = l.session_id
AND    UPPER(l.lock_id1) LIKE '%ПАКЕТ%'
AND    l.lock_type = 'Body Definition Lock'
Подробнее

Oracle - добавляем размер табличного пространства

Ещё это метод излечения ошибки типа: 

ORA-01654: unable to extend.

Узнаем размеры табличного пространства и свободное место:

select file_name,tablespace_name,user_bytes/1024/1024,bytes/1024/1024,
    maxbytes/1024/1024,autoextensible from dba_data_files;

Добавляем еще места:

ALTER TABLESPACE USERS_INDX -- Это TABLESPACE_NAME
ADD DATAFILE 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS_IDX01.DBF' 
SIZE 100M
AUTOEXTEND ON NEXT 100M
MAXSIZE 4G;
Подробнее

Исправляем ошибку ORA-00604: error occured at recursive SQL level 1ORA-12705 в Oracle SQL Developer

Ошибка при установке соединения с сервером из Oracle SQL Developer:

ORA-00604: error occured at recursive SQL level 1ORA-12705: Cannot access NLS data files or invalid enviroment specified


Для исправления делаем следующие действия:

    Открываем <папку_со_средой>\ide\bin\ide.conf
    Дописываем туда две строчки:

    AddVMOption -Duser.language=en
    AddVMOption -Duser.region=us

И всё!

Подробнее

Проверка адреса электронной почты на корректность средствами PL/SQL

Простейшая проверка адреса электронной почты выглядит так:

select * from EMailsTable et where REGEXP_LIKE (et.Email, '[A-z0-9._%-]+@[A-z0-9._%-]+\.[A-z]{2,4}')


Скрипт выбирает из таблицы с E-Mail адресами только те адреса которых попадают под заданное регулярное выражение.

Подробнее

Пример создания временных таблиц на PL/SQL как в MSSQL

Для того, кто перешёл с MSSQL на Oracle, как например для меня, очень не привычно отсутствие такой удобной конструкции как:

select * into #tmp from table1

Где #tmp - временная таблица, с которой мы в рамках сессии можем далее обращаться как с обычной. 

Однако в Oracle такая конструкция не работает. Мои попытки сходу найти какой либо аналог, успехом не увенчались. Однако свершилось чудо, и спустя некоторое время более опытный в этом вопросе коллега подсказал таки выход, который по сути реализует аналогичную вещь как и в MSSQL.

Подробнее

PL/SQL SELECT и использование DISTINCT

Ни для кого не секрет что при использовании DISTINCT вместе с SELECT мы получаем набор уникальных записей, но оказывается в Oracle, есть ещё один оператор для этих целей UNIQUE - причем из проведенных опытов, похоже дает большую производительность.

Подробнее