Необъявленный курсор
Необязательное предложение AS CURSOR
создаёт именованный курсор, на который можно ссылаться (с использованием предложения WHERE CURRENT OF
) внутри составного оператора следующего после предложения DO
, для того чтобы удалить или модифицировать текущую строку.
Разрешается использовать имя курсора как переменную типа запись (аналогично OLD и NEW в триггерах), что позволяет получить доступ к столбцам результирующего набора (т.е. cursor_name . columnname).Использование предложение AS CURSOR
делает предложение INTO
необязательным.
-
Для разрешения неоднозначности при доступе к переменной курсора перед именем курсора необходим префикс двоеточие;
-
К переменной курсора можно получить доступ без префикса двоеточия, но в этом случае, в зависимости от области видимости контекстов, существующих в запросе, имя может разрешиться как контекст запроса вместо курсора;
-
Переменные курсора доступны только для чтения;
-
В операторе
FOR SELECT
без предложенияAS CURSOR
необходимо использовать предложениеINTO
. Если указано предложениеAS CURSOR
, предложениеINTO
не требуется, но разрешено; -
Чтение из переменной курсора возвращает текущие значения полей. Это означает, что оператор
UPDATE
(с предложениемWHERE CURRENT OF
) обновит также и значения полей в переменной курсора для последующих чтений. Выполнение оператораDELETE
(с предложениемWHERE CURRENT OF
) установит NULL для значений полей переменной курсора для последующих чтений.
Note
|
|