DECLARE — определить курсор
DECLAREcursor_name[ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FORprepared_nameDECLAREcursor_name[ BINARY ] [ ASENSITIVE | INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FORquery
DECLARE объявляет курсор для итерации по результирующему набору подготовленного оператора. Данная команда имеет семантику, несколько отличающуюся от прямой команды SQL DECLARE: в то время как последняя выполняет запрос и подготавливает результирующий набор для извлечения, данная команда внедренного SQL лишь объявляет имя в качестве «переменной
цикла» для выполнения итерации по результирующему набору запроса; фактически выполнение происходит, когда курсор открывается с помощью оператора OPEN команды.
Примеры объявления курсора для запроса:
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 version();
Пример объявления курсора для подготовленного оператора:
EXEC SQL PREPARE stmt1 AS SELECT version(); EXEC SQL DECLARE имя курсора cur1 CURSOR FOR stmt1;
DECLARE определен в стандарте SQL.