Манипуляция "курсором".
Манипуляция "курсором".
DECLARE cursor-name [SCROLL] CURSOR [WITH HOLD] FOR
{ SELECT-st [FOR UPDATE [OF column-list]] |
INSERT-st | statment-id }
SCROLL - фактически, создается временная таблица.
statment-id - приготовленого PREPARE
HOLD - игнорировать конец транзакции
Внимание: SCROLL cursor нельзя открывать FOR UPDATE, зато для не-SCROLL cursora можно использовать
Внимание: оператор DECLARE cursor-name должен располагаться в тексте программы выше любого использования этого курсора. OPEN cursor-name [USING список переменных]
CLOSE cursor-name
для SELECT-курсора:
FOREACH cursor-name [INTO список переменных]
. . .
[CONTINUE FOREACH]
. . .
[EXIT FOREACH]
. . .
END FOREACH
FETCH { NEXT | PREVIOUS | FIRST | LAST | CURRRENT |
RELATIVE m | ABSOLUTE n ] cursor-name
[INTO список переменных]
если cursor not SCROLL то можно только NEXT
если строки не обнаружено, то status=NOTFOUND для INSERT-курсора:
PUT cursor-name [FROM список переменных] ввести строку в буфер,
[заменив знаки ? для DECLAREd INSERT-st на список переменных]
FLUSH cursor-name вытолкнуть буфер
^^ SQL операторы ^^
Описания CREATE, DROP, DATABASE, ALTER, RENAME
Манипуляция данными DELETE, INSERT, UPDATE, LOAD, UNLOAD
Оператор SELECT
Операторы транзакции и восстановления BEGIN WORK, COMMIT WORK, ROLLBACK WORK, START DATABASE, ...