Страница 21 из 25 4. 1. 6 Оператор отказа от подготовленного оператораСинтаксис оператора следующий: <deallocate prepared statement> ::= DEALLOCATE PREPARE < SQL statement name> Выполнение этого оператора приводит к тому, что ранее подготовленный оператор SQL, связанный с указанным именем оператора, ликвидируется, и, соответственно, имя оператора становится неопределенным. Если подготовленный оператор являлся оператором выборки, и к моменту выполнения оператора DEALLOCATE существовал открытый курсор, связанный с именем подготовленного оператора, то оператор DEALLOCATE возвращает код ошибки. Если же для подготовленного оператора выборки существовал неоткрытый курсор, образованный с помощью оператора ALLOCATE CURSOR, то этот курсор ликвидируется. Если курсор объявлялся оператором DECLARE CURSOR, то такой курсор переходит в состояние, существовавшее до выполнения оператора PREPARE. Если с курсором был связан подготовленный оператор (динамический DELETE или UPDATE), то для этих операторов выполняется неявный оператор DEALLOCATE. 4. 1. 7 Оператор запроса описания подготовленного оператораОператор определяется следующим синтаксисом: <describe statement> ::= <describe input statement> | <describe output statement> <describe input statement> ::= DESCRIBE INPUT < SQL statement name> <using descriptor> <describe output statement> ::= DESCRIBE [OUTPUT] < SQL statement name> <using descriptor> <using clause> ::= <using arguments> | <using descriptor> <using arguments> ::= { USING | INTO } <argument> [{<comma> <argument>}. . . ] <argument> ::= <target specification> <using descriptor> ::= { USING | INTO } SQL DESCRIPTOR <descriptor name> <target specification> ::= <parameter specification> | <variable specification> <parameter specification> ::= <parameter name> [<indicator parameter>] <indicator parameter> ::= [INDICATOR] <parameter name> <variable specification> ::= <embedded variable name> [<indicator variable>] <indicator variable> ::= [INDICATOR] <embedded variable name> При выполнении оператора DESCRIBE происходит заполнение указанного в операторе дескриптора информацией, описывающей либо результат ранее подготовленного оператора SQL (если это оператор выборки), либо количество и типы параметров подготовленного оператора. В <using descriptor> полагается писать USING SQL DESCRIPTOR. 4. 1. 8 Оператор выполнения подготовленного оператораСинтаксис оператора следующий: <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. 4. 1. 9 Оператор подготовки с немедленным выполнениемСинтаксис оператора: <execute immediate statement> ::= EXECUTE IMMEDIATE < SQL statement variable> При выполнении оператора EXECUTE IMMEDIATE производится подготовка и немедленное выполнение заданного в текстовой форме оператора SQL. При этом подготавливаемый оператор не должен быть оператором выборки, не должен содержать формальных параметров и комментариев. |