Архив категории «Базы данных»
COALESCE “умнее” чем NVL.
Век живи – век учись. NVL вычисляет второй аргумент, даже если если первый аргумент не NULL. NVL2 поступает также: “вычисляет” оба аргумента, хотя по идее должна вычислять только один. Подробности и детали: Short-circuit Evaluations …
Рубрики: Oracle, Базы данных · Теги: functions, oracle
Oracle recycle bin
В Oracle 10 появилась новая фича Recycle Bin, когда вы удаляете таблицу – она вначале попадает в корзину (нафига это надо?!). Самое дурацкое – что таблица просто переименовывается и естественно занимает тоже место что и до …
Рубрики: Oracle, Базы данных · Теги: oracle
SQL Programming Macroprocessor – зачем он нужен??
Serguei_Tarassov опубликовал заметку SPM (SQL Programming Macroprocessor). Создайте свой проблемный язык – 2. С заголовком согласен на 100% – еще один язык над SQL – это создание проблем себе самому, хотя подозреваю под словами “проблемный …
Рубрики: Базы данных
Сюрпризы Oracle – foreign keys and indexes
Oracle 10 не перестает удивлять. Я так и не понял как можно было загрузить дамп в котором в дочерней таблице были references на несуществующие записи в master таблице, при том что после загрузки данных он спокойно создал и …
Рубрики: Oracle, Базы данных
Сюрпризы oracle – обфускация пакетов
Все нижеследующее справедливо для 9-ки (Oracle 9.2.x.x)
Вероятно Вам приходилось обфусцировать plsql пакеты Oracle. Вероятно также что однажды утилита wrap не смогла это сделать. И Вы получили примерно такую ошибку:
kgefec: fatal error 0 …
Рубрики: Oracle, Базы данных · Теги: obfuscation, oracle, wrap
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 …
Рубрики: Oracle, Базы данных · Теги: connectby, dual, oracle
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;
Не понравилось нам название колонки – …
