Стандарты языка реляционных баз данных SQL: краткий обзор - Некоторые черты SQL/92. Часть 2

ОГЛАВЛЕНИЕ

4. 1. 4 Оператор установки дескриптора

Оператор установки имеет следующий синтаксис:

<set descriptor statement> ::=
SET DESCRIPTOR <descriptor name>
<set descriptor information>
<set descriptor information> ::=
<set count>
| VALUE <item number>
<set item information>
[{<comma> <set item information>}. . . ]
<set count> ::=
COUNT <equals operator>
<simple value specification 1>
<set item information> ::=
<descriptor item name>
<equals operator>
<simple value specification 2>
<simple target specification 1> ::=
<simple target specification>
<simple target specification 2> ::=
<simple target specification>
<item number> ::= <simple value specification>

Оператор SET DESCRIPTOR служит для заполнения элементов дескриптора с целью его будущего использования в разделе USING. За одно выполнениеоператора можно поместить значение в поле COUNT (число заполненных элементов)либо частично или полностью сформировать один элемент дескриптора.

4. 1. 5 Оператор подготовки

Оператор определяется следующим синтаксисом:

<prepare statement> ::=
PREPARE < SQL statement name>
FROM < SQL statement variable>
< SQL statement variable> ::=
<simple target specification>
<preparable statement> ::=
<preparable  SQL data statement>
| <preparable  SQL schema statement>
| <preparable  SQL transaction statement>
| <preparable  SQL session statement>
| <preparable implementation-defined statement>
<preparable  SQL data statement> ::=
<delete statement: searched>
| <dynamic single row select statement>
| <insert statement>
| <dynamic select statement>
| <update statement: searched>
| <preparable dynamic delete statement: positioned>
| <preparable dynamic update statement: positioned>
<preparable  SQL schema statement> ::=
< SQL schema statement>
<preparable  SQL transaction statement> ::=
< SQL transaction statement>
<preparable  SQL session statement> ::=
< SQL session statement>
<dynamic select statement> ::=
<cursor specification>
<dynamic simple row select statement> ::=
<query specification>
< SQL statement name> ::=
<statement name>
| <extended statement name>
<extended statement name> ::=
[scope option] <simple value specification>
<cursor specification> ::=
<query expression> [<order by clause>]
[<updatability clause>]
<updatability clause> ::=
FOR { READ ONLY | UPDATE [ OF <column name list> ] }
<query expression> ::=
<non-join query expression>
| <joined table>
<query specification> ::=
SELECT [<set quantifier>]
<select list> <table expression>
<set quantifier> ::= DISTINCT | ALL

Оператор PREPARE вызывает компиляцию и построение плана выполнения оператора SQL, заданного в текстовой форме. После успешного выполнения оператора PREPARE с подготовленным оператором связывается указанное (литерально или косвенно) имя этого оператора, которое потом может быть использовано в операторах DESCRIBE, EXECUTE, OPEN CURSOR, ALLOCATE CURSOR и DEALLOCATEPREPARE. Эта связь сохраняется до явного выполнения оператора DEALLOCATEPREPARE.