Архив | метка: 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 – обфускация пакетов

Все нижеследующее справедливо для 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. OraOleDb, FetchSize и dotnet

Простой запрос, три поля из трех таблиц, все строки VARCHAR2. Dotnet framework 2.0. OleDbDataReader. Первые сто строк вычитываются нормально, потом все идет крокозяблами. Думал поседею. Четыре разных сервера, три девятки, одна десятка, проявляется только на одном. Проблемы оказалась в параметре FetchSize (сколько строк возращать за одну вычитку), первый раз все вычитается правильно, все последующие вернут [...]

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

"Горизонтальные" функции в Oracle.

Сегодня обнаружил в коде функцию Coalesce. Ни разу не пользовался. Дословно – объединять. Почему объединять ума не приложу. Функция возвращает первое not null значение из списка, заменитель вложенных NVL функций. И теперь вместо: NVL(NVL(NVL(ColumnA, ColumnB) , ColumnC), ColumnD) можно написать: COALESCE(ColumnA, ColumnB, ColumnC, ColumnD) Функция «горизонтальная». « Горизонтальная» функция, потому что оперирует колонками (или n [...]

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