DECLARE CURSOR
Описание
DECLARE CURSOR определяет набор строк, которые могут быть возвращены, при обращении к этому курсору. Это первая инструкция, из группы инструкций работы с курсором, которая должна быть использована в работе с ним.
<select> определяет инструкцию SELECT, которая определяет, какие строки необходимо отыскать. Инструкция SELECT не должна включать предложения INTO и ORDER BY.
Предложение FOR UPDATE OF необходимо, для модификации или удаления строк [using the WHERE CURRENT OF clause with UPDATE and DELETE.]
Курсор это однонаправленный указатель на упорядоченный набор возвращенных строк выражением SELECT в инструкции DECLARE CURSOR. Он позволяет последовательный доступ к отысканным строкам в свою очередь. Есть четыре связанных инструкции для работы с курсором:
Стадия | Инструкция | Назначение |
---|---|---|
1 | DECLARE CURSOR |
Объявляет курсор. Инструкция SELECT определяет строки возвращаемые для курсора. |
2 | OPEN |
Отыскивает строки определенные, чтобы вернуть, с помощью DECLARE CURSOR. Результирующие строки становятся текущим набором курсора. |
3 | FETCH |
Возвращает текущую строку из текущего набора, начиная с первой строки. |
4 | CLOSE |
Закрывает курсор и освобождает системные ресурсы. |
Эта инструкция может быть использована в SQL и DSQL.
Синтаксис
SQL:
DECLARE cursor CURSOR FOR <select> [FOR UPDATE OF <col> [, <col>...]];
DSQL:
DECLARE cursor CURSOR FOR <statement_id>
Для BLOB:
Смотри: DECLARE CURSOR (BLOB)
Аргумент | Описание |
---|---|
cursor |
Имя курсора. |
<select> |
Определяет, какие строки должны быть возвращены. Только для SQL. |
FOR UPDATE OF <col> |
Позволяет UPDATE и DELETE на определенных столбцах для возвращенных строк. |
<statement_id> |
Имя инструкции SQL предварительно приготовленной (prepared) инструкции, которая, в это м случае, должна использоваться вместо инструкции SELECT. Только для DSQL. |
Примеры
Следующая внедренная инструкция SQL объявляет курсор с условиями поиска:
EXEC SQL DECLARE C CURSOR FOR SELECT CUST_NO, ORDER_STATUS FROM SALES WHERE ORDER_STATUS IN ("open", "shipping");
Следующая инструкция DSQL объявляет курсор для предварительно приготовленной инструкции QUERY1:
DECLARE Q CURSOR FOR QUERY1