16.2. Язык модулей
Структура модуля SQL в стандарте
SQL/89 определяется следующими
синтаксическими правилами:
<module> ::=
<module name clause>
<language clause>
<module autorization clause>
[<declare cursor>...]
< procedure > ...
<module name clause> ::= MODULE [<module name>]
<language clause> ::= LANGUAGE { COBOL | FORTRAN | PASCAL | PLI }
<module autorization clause> ::=
AUTHORIZATION <module autorization identifier>
<module autorization identifier> ::= <autorization identifier>
Существенно, что каждый модуль SQL
ориентирован на использование в
программах, написанных на
конкретном языке программирования.
Если в модуле присутствуют
процедуры работы с курсорами, то
все курсоры должны быть
специфицированы в начале модуля.
Заметим, что объявление курсора не
погружается в какую-либо процедуру,
поскольку это описательный, а не
выполняемый оператор SQL.
Процедуры в модуле SQL
определяются следующими
синтаксическими конструкциями:
<procedure> ::=
PROCEDURE <procedure name>
<parameter declaration>...;
<SQL statment>;
<parameter declaration>::=
<parameter name> <data type>
| <SQLCODE parameter>
<SQLCODE parameter> ::= SQLCODE
<SQL statement> ::=
<close statement>
| <commit statement>
| <delete statement positioned>
| <delete statement searched>
| <fetch statement>
| <insert statement>
| <open statement>
| <rollback statement>
| <select statement>
| <update statement positioned>
| <update statement searched>
Имена всех процедур в одном
модуле должны быть различны. Любое
имя параметра, содержащегося в
операторе SQL процедуры, должно быть
специфицировано в разделе
объявления параметров. Число
фактических параметров при вызове
процедуры должно совпадать с
числом формальных параметров,
указанных при ее объявлении. Список
формальных параметров каждой
процедуры должен содержать ровно
один параметр SQLCODE (код ответа
процедуры; возможные значения
кодов ответа стандартизованы, но
некоторые из них определяются в
реализации).
Предыдущая
глава || Оглавление
|| Следующая глава
|