DECLARE — определить курсор
DECLAREимя_курсора[ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FORподготовленный_операторDECLAREимя_курсора[ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FORquery
DECLARE объявляет курсор для прохода по набору результатов подготовленного оператора. Эта команда несколько отличается от обычной SQL-команды DECLARE: тогда как последняя выполняет запрос и подготавливает набор результатов для получения, встраиваемая SQL-команда просто объявляет имя в качестве «переменной цикла» для прохода по набору результатов запроса; фактически запрос выполнится, когда курсор будет открыт командой OPEN.
имя_курсора #Имя курсора, задаётся с учётом регистра. Это может быть идентификатор SQL или переменная среды C.
подготовленный_оператор #Имя подготовленного запроса, задаваемое SQL-идентификатором или переменной среды.
query #Команда SELECT или VALUES, выдающая строки, которые будут получены через курсор.
Параметры курсора рассматриваются в описании DECLARE.
Примеры объявления курсора для запроса:
EXEC SQL DECLARE C CURSOR FOR SELECT * FROM My_Table;
EXEC SQL DECLARE C CURSOR FOR SELECT Item1 FROM T;
EXEC SQL DECLARE cur1 CURSOR FOR SELECT current_setting('pgpro_version');Пример объявления курсора для подготовленного оператора:
EXEC SQL PREPARE stmt1 AS SELECT current_setting('pgpro_version');
EXEC SQL DECLARE cur1 CURSOR FOR stmt1;Команда DECLARE описана в стандарте SQL.