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.

16.2.1. Определение процедуры

Процедуры в модуле 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 (код ответа процедуры; возможные значения кодов ответа стандартизованы, но некоторые из них определяются в реализации).

Предыдущая глава || Оглавление || Следующая глава