Необъявленный курсор
Необязательное предложение 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
|
|