Правильная ссылка на эту страницу
http://az-design.ru/Support/DataBase/SQL/SQL92/SQL92-2Allocate_cursor.shtml

[ Только для динамического SQL ]

ALLOCATE CURSOR
Связывает курсор с подготовленным оператором

Синтаксис

ALLOCATE расширенное имя курсора
     [INSENSITIVE] [SCROLL]
     CURSOR FOR расширенное имя оператора;

Использование
       Оператор ALLOCATE CURSOR используется в динамическом SQL, чтобы связать курсор с инструкцией SQL для выбора нужных строк, которые были предварительно подготовлены с помощью оператора PREPARE. В отличие от оператора DECLARE CURSOR, тоже используемого в динамическом SQL, в нем можно применять вместо имени курсора переменную. Таким образом, оператор ALLOCATE CURSOR допускает создание неопределенного количества курсоров, инициируя их исполнение последовательно, используя для этого различные значения параметра в имени курсора.
       Расширенное имя оператора указывает на подготовленный оператор, который должен представлять собой сформированную определенным образом инструкцию SELECT, предназначенную для использования в курсоре. ALLOCATE CURSOR должен удовлетворять правилам работы с курсорами, которые определены для оператора DECLARE CURSOR. Параметр INSENSITIVE указывает, что содержимое курсора не изменится при модификации данных в базе. Параметр SCROLL обеспечивает поиск строк в пределах курсора (в любом направлении), но разрешен для курсоров, помеченных "только чтение". Более подробная информация об этих параметрах приведена в описании оператора DECLARE CURSOR. Использование ALLOCATE CURSOR дает возможность добавить предложение для модификации данных в инструкцию SELECT, чтобы ограничить число обновлений курсора, уменьшив тем самым количество используемых блокировок (см. DECLARE CURSOR).
       Расширенное имя курсора представляет собой просто название целевого объекта, т.е. имя переменной базового языка, для которой запрещено использование индикаторной переменной. Во время исполнения конкретного оператора ALLOCATE CURSOR эта переменная должна принимать значение, уникальное по отношению к другим выделенным курсорам данного программного модуля.
       Для расформирования (отмены) курсора необходимо закрыть его, используя оператор CLOSE и просто освободить связанный с ним подготовленный оператор с помощью DEALLOCATE PREPARE.

Пример
       В приведенном ниже примере слово "cursorname" устанавливает имя курсора, который имеет возможности пролистывания. Текущее значение cursorname будет соответствовать имени, которое используется для ссылки на курсор в других SQL-операторах. "Statements" — это имя подготовленной инструкции SELECT. Предполагается, что в приложении операторы нумеруются в порядке их подготовки.

ALLOCATE :cursorname SCROLL CURSOR FOR :statements;

Уровни соответствия

Intermed

 

В приложении этого уровня не требуется поддержка оператора ALLOCATE CURSOR

См. также
       главу I раздел "Курсоры: только чтение, с возможностями пролистывания, нечувствительный и динамический", главу II операторы DECLARE CURSOR, PREPARE и приложение С.

 


<<Пред. Оглавление
Начало раздела
След.>>




Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:55 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/DataBase/SQL/SQL92/SQL92-2Allocate_cursor.shtml