FOR SELECT
Цикл по строкам результата выполнения оператора SELECT
.
PSQL
[label:] FOR <select_stmt> [INTO <variables>] [AS CURSOR cursorname] DO <compound_statement> <variables> ::= [:{endsb}varname [, [:{endsb}varname ...]
Параметр | Описание |
---|---|
label |
Необязательная метка для |
select_stmt |
Оператор |
cursorname |
Имя курсора.Должно быть уникальным среди имён переменных и курсоров PSQL модуля. |
varname |
Имя локальной переменной или входного/выходного параметра. |
compound_statement |
Составной оператор (оператор или блок операторов). |
Оператор FOR SELECT
выбирает очередную строку из таблицы (представления, селективной хранимой процедуры), после чего выполняется составной оператор.В каждой итерации цикла значения полей текущей строки копируются в локальные переменные.Добавление предложения AS CURSOR
делает возможным позиционное удаление и обновление данных.Операторы FOR SELECT
могут быть вложенными.
Оператор FOR SELECT
может содержать именованные параметры, которые должны быть предварительно объявлены в операторе DECLARE VARIABLE
, или во входных (выходных) параметрах процедуры (PSQL блока).
Оператор FOR SELECT
должен содержать предложение INTO
, которое располагается в конце этого оператора, или предложение AS CURSOR
.На каждой итерации цикла в список переменных указанных в предложении INTO
копируются значения полей текущей строки запроса.Цикл повторяется, пока не будут прочитаны все строки.После этого происходит выход из цикла.Цикл также может быть завершён до прочтения всех строк при использовании оператора LEAVE
.