Архив | Рубрика: Oracle

Oracle

COALESCE “умнее” чем NVL.

Век живи — век учись. NVL вычисляет второй аргумент, даже если если первый аргумент не NULL. NVL2 поступает также:  “вычисляет” оба аргумента, хотя по идее должна вычислять только один. Подробности и детали: Short-circuit Evaluations — moving away from NVL. Конечно для случаев NVL(Field, DefaultValue) или NVL2(Field, NotNullDefaultValue, NullDefaultValue) это ничего не даст, но если для [...]

Читать полностьюКомментарии отключены

Oracle recycle bin

В Oracle 10 появилась новая фича Recycle Bin, когда вы удаляете таблицу – она вначале попадает в корзину (нафига это надо?!). Самое дурацкое — что таблица просто переименовывается и естественно занимает тоже место что и до исполнения DROP TABLE. Причем ложится туда вместе с индексами. Отключить навсегда: ALTER SYSTEM SET "recyclebin"=OFF SCOPE = BOTH; Почистить [...]

Читать полностьюКомментарии отключены

Сюрпризы Oracle – foreign keys and indexes

Oracle 10 не перестает удивлять. Я так и не понял как можно было загрузить дамп в котором в дочерней таблице были references на несуществующие записи в master таблице, при том что после загрузки данных он спокойно создал и соотвествующие constraints и индексы. Deferrable constraints нигде нет. Да и не пользовали никогда. Вообщем – случилось и [...]

Читать полностьюКомментарии отключены

Сюрпризы oracle – обфускация пакетов

Все нижеследующее справедливо для 9-ки (Oracle 9.2.x.x) Вероятно Вам приходилось обфусцировать plsql пакеты Oracle. Вероятно также что однажды утилита wrap не смогла это сделать. И Вы получили примерно такую ошибку: kgefec: fatal error 0 kgepop: no error frame to pop to for error 603 или другую ошибку подобную ошибку. И Вам приходилось рыскать в интернете [...]

Читать полностьюКомментарии отключены

Oracle. Таблица dual и connect by

Oracle не перестает удивлять. Oracle 9. Select Level from dual connect by Level < 200 Вернет строго 100 записей. Select Max(Level) from dual connect by Level < 200 Вернет 199. Приятно. Но это еще не всё. :) Select Max(LevelNo) from ( Select Level as LevelNo from dual connect by Level < 200 ) Тоже вернет [...]

Читать полностьюКомментарии { 2 }

Oracle Views. Сюрпризы.

Создаем обычную вьюшку. create view TestView as Select Level as N from dual connect by Level < 10 Три следующих запроса работают нормально: Select * from TestView; Select N from TestView; Select n from TestView; Select «N» from TestView; Не понравилось нам название колонки – N, меняем вьюшку create or replace view TestView as Select [...]

Читать полностьюКомментарии отключены

Oracle. Оператор LIKE. Escape character.

LIKE — простой условной оператор для сравнения по маске.  С двумя символами: % — всё что угодно _ — один символ Я всё время считал, что escape character в Oracle это тот же процент (%). До тех пор пока не пришлось искать в строках этот процент и подчеркивание. После первого же запроса понял, что одновременно [...]

Читать полностьюКомментарии отключены
Страница 1 из 212