Доступ к последовательностям в PL/SQL 11g

В PL/SQL 11g появилась возможность выбирать следующее значение из последовательности (sequence) напрямую, не используя выборку значения через системную таблицу dual. Старый привычный синтаксис:

SELECT MY_SEQ.NEXTVAL INTO n FROM dual;

Новый синтаксис в PL/SQL 11g:

n:=MY_SEQ.NEXTVAL;
Continue reading Доступ к последовательностям в PL/SQL 11g

Создание файла Excel средствами PL/SQL

На просторах сети нашел очень интересный PL/SQL пакет, который позволяет легко формировать Excel файлы в формате xlsx на основе запросов к базе данных. Такой пакет очень даже может пригодиться.

Continue reading Создание файла Excel средствами PL/SQL

Oracle PLSQL Intra-unit inlining

Одна из интересных новых возможностей Oracle PL/SQL версии 11g это технология Intra-unit inlining. Суть это технологии в том, что если в вашем коде есть вложенные в него процедуры или функции, то с помощью этой технологии можно скомпилировать ваш код таким образом, что эти вложенные процедуры и функции будут убраны в скомпилированном коде, а код этих вложенных процедур или функций будет располагаться непосредственно в теле вашего кода вместо вызова этих вложенных процедур или функций. 

Continue reading Oracle PLSQL Intra-unit inlining

Индексные массивы в Oracle PL/SQL

Про индексные массиы

Язык программирования PL/SQL, предназначенный для программирования серверной части приложений, является очень мощным инструментов в умелых руках. Одним из интереснейших инструментов эффективного программирования являются такие представители коллекций PL/SQL как индексные таблицы, или ассоциативные массивы.

Continue reading Индексные массивы в Oracle PL/SQL

Эмуляция Oracle Global Temporary Table

Зачем эмулировать Global Temporary Table, если этот механизм и так встроен в базу данных Oracle? Действительно, незачем, если ваше приложение полностью построено с применением только одного клиента, который может быть написан на чем угодно. Однако может возникнуть ситуация, в которой ваше основное приложение использует результаты вычислений другого приложения, которое записывает выходные данные в некоторую таблицу, данные из которой и должно считать основное приложение. Например, отдельное не визуальное приложение на Java производит некоторые сложные вычисления, результаты которого необходимо отобразить пользователю в визуальном приложении на Oracle Forms. Причем эти данные являются временными, т.е. необходимыми только один раз для визуального отображения пользователю. Налицо необходимость организации взаимодействия между разными приложениями, работающими в разных сессиях.

Continue reading Эмуляция Oracle Global Temporary Table