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

Oracle

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 [...]

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

Oracle bad practice — комментарии.

Gojko Adzic составил очень любопытный документ Oracle SQL and PL/SQL Bad Practices. А я позволил себе немного его прокомментировать. Сколько людей — столько мнений. Однозначно разделить на bad и best practice не выйдет.   Using non-deterministic functions directly in conditions. +1 Использование функций в условиях (WHERE) — зло и жестоко бьет по производительности. Catch-all error handling. [...]

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

WHENEVER

Whenever — всякий раз. Не всякий раз, как оказалось. Очень простая задача, ловить все ошибки (что их можно было обрабатывать) в pl/sql скрипте, и потом в bat файле обрабатывать. Пробуем: 1 WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK; 2 3 DECLARE 4 a NUMBER(23,4); 5 BEGIN 6 a := 1/0; 7 END; 8 / 9 EXIT 10 [...]

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