Реферат: Некоторые черты SQL92 и SQL-3
(<scope option>] <simple value specification>
Комментарий:
Курсоры, определяемые с помощью оператора ALLOCATE CURSOR, фактически создаются при выполнении такого оператора и уничтожаются при выполнении оператора DEALLOCATE PREPARE или при завершении транзакции. В этом операторе имена курсора и подготовленного оператора SQL могут задаваться не только в литеральной форме, но и через переменные. <scope option> относится к области видимости имен: в пределах текущего модуля или в пределах текущей сессии.
Оператор открытия курсора, связанного с динамически подготовленным оператором выборки
<dynamic open statement> ::=
OPEN <dynamic cursor name> [<using clause>]
Комментарий:
По сути, оператор открытия курсора, связанного с динамически подготовленным оператором SQL, отличается от статического случая только возможным наличием раздела using, в котором задаются фактические параметры оператора выборки. Кроме того, имя курсора может задаваться через переменную.
Оператор чтения строки по курсору, связанному с динамически подготовленным оператором выборки
<dynamic fetch statement> ::=
FETCH [[<fetch orientation>] FROM]
<dynamic cursor name> <using clause>
Комментарий:
По сути, оператор чтения по курсору, связанному с динамически подготовленным оператором SQL, отличается от статического случая только возможным наличием раздела using, в котором задается размещение значений текущей строки результирующей таблицы. Кроме того, имя курсора может задаваться через переменную.
Оператор закрытия курсора, связанного с динамически подготовленным оператором выборки
<dynamic close statement> ::=
CLOSE <dynamic cursor name>
Комментарий:
По сути, оператор закрытия курсора, связанного с динамически подготовленным оператором SQL, отличается от статического случая только тем, что имя курсора может задаваться через переменную
Оператор позиционного удаления по курсору, связанному с динамически подготовленным оператором выборки
<dynamic delete statement: positioned> ::=
DELETE FROM <table name>
WHERE CURRENT OF <dynamic cursor name>
Комментарий:
По сути, оператор позиционного удаления по курсору, связанному с динамически подготовленным оператором SQL, отличается от статического случая только тем, что имя курсора может задаваться через переменную.
Оператор позиционной модификации по курсору, связанному с динамически подготовленным оператором выборки
<dynamic update statement: positioned> ::=
UPDATE <table name>
SET <set clause> [{<comma> <set clause>}...]