Архив рубрики «Oracle PL/SQL для чайников»

Ассоциативные массивы (индексированные таблицы)

01.12.2010

Ассоциативный массив в PL/SQL это коллекция элементов, которые используют произвольные числа и строки в качестве индекса значения.
Объявление ассоциативного массива в декларативной части PL/SQL-элемента (пакета, процедуры и т.п.):

DECLARE
   TYPE AssocArray IS TABLE OF ElementType
   INDEX BY BINARY_INTEGER|pls_integer|VARCHAR2(size);

Использование OPEN…FOR в динамическом SQL

18.11.2010

Представьте себе вариант решения задачи, когда вам нужно распечатать список сотрудников, но вы не знаете какой должен быть фильтр (условие WHERE). Реализация этой логики выглядит следующим бразом:
1. Курсор по таблице EMP.
2. Печать всей информации с помощью процедуры DBMS_OUTPUT.PUT_LINE.

В данном подходе есть значительный камень преткновения. Как вы можете построить курсор, если не знаете, содержимое фильтра данных? (То есть, что делать, если вы не знаете, какие столбцы и условия необходимы в блоках WHERE и SELECT запроса?) Динамический SQL позволяет вам ответить на этот вопрос и в сочетании с Oracle построить так называемый REF CURSOR.

Вы можете использовать этот подход для создания указателей на целые наборы данных, но определив Oracle-курсор, необходимо задать запрос для его использования. Конструкции же типа REF CURSOR просто логические указатели, которые не требуют определять используемый в курсоре запрос в момент декларации.

Отслеживание даты и времени

13.01.2010

Oracle поддерживает три типа данных (DATE, TIMESTAMP, INTERVAL) и ряд встроенных функций, которые мы рассмотрим ниже.