Реферат: Некоторые черты SQL92 и SQL-3
<variable specification> ::=
<embedded variable name> [<indicator variable>]
<indicator variable> ::= [INDICATOR] <embedded variable name>
Комментарий:
При выполнении оператора DESCRIBE происходит заполнение указанного в операторе дескриптора информацией, описывающей либо результат ранее подготовленного оператора SQL (если это оператор выборки), либо количество и типы параметров подготовленного оператора. В <using descriptor> здесь полагается писать USING SQL DESCRIPTOR.
Оператор выполнения подготовленного оператора
<execute statement> ::=
EXECUTE <SQL statement name>
(<result using clause>]
(<parameter using clause>]
<result using clause> ::= <using clause>
<parameter using clause> ::= <using clause>
Комментарий:
Оператор EXECUTE может быть применен к любому ранее подготовленному оператору SQL, кроме <dynamic select statement>. Если это оператор <dynamic single row select statement>, то оператор EXECUTE должен содержать раздел <result using class> с ключевым словом INTO. В любом случае число фактических параметров, задаваемых через разделы using, должно соответствовать числу формальных параметров, определенных в подготовленном операторе SQL.
Оператор подготовки с немедленным выполнением
<execute immediate statement> ::=
EXECUTE IMMEDIATE <SQL statement variable>
Комментарий:
При выполнении оператора EXECUTE IMMEDIATE производится подготовка и немедленное выполнение заданного в текстовой форме оператора SQL. При этом подготавливаемый оператор не должен быть оператором выборки, не должен содержать формальных параметров и комментариев.
Оператор объявления курсора над динамически подготовленным оператором выборки
<dynamic declare cursor> ::=
DECLARE <cursor name> [INSENSITIVE] [SCROLL]
CURSOR FOR <statement name>
Комментарий:
Как определяется в новом стандарте, для всех операторов DECLARE CURSOR, курсоры фактически создаются при начале транзакции и уничтожаются при ее завершении. Заметим, что в этом операторе <cursor name> и <statement name> - прямо заданные идентификаторы.
Оператор определения курсора над динамически подготовленным оператором выборки
<allocate cursor statement> ::=
ALLOCATE <extended cursor name> [INSENSITIVE] [SCROLL]
CURSOR FOR <extended statement name>