Структура модуля SQL в стандарте SQL/89 определяется следующими синтаксическими правилами:
::=
[...]
< procedure > ...
::= MODULE []
::= LANGUAGE { COBOL | FORTRAN | PASCAL | PLI }
::=
AUTHORIZATION
::=
Существенно, что каждый модуль SQL ориентирован на использование в программах, написанных на конкретном языке программирования. Если в модуле присутствуют процедуры работы с курсорами, то все курсоры должны быть специфицированы в начале модуля. Заметим, что объявление курсора не погружается в какую-либо процедуру, поскольку это описательный, а не выполняемый оператор SQL.
Процедуры в модуле SQL определяются следующими синтаксическими конструкциями:
::=
PROCEDURE
...;
;
::=
|
::= SQLCODE
::=
|
|
|
|
|
|
|
|
|
|
Имена всех процедур в одном модуле должны быть различны. Любое имя параметра, содержащегося в операторе SQL процедуры, должно быть специфицировано в разделе объявления параметров. Число фактических параметров при вызове процедуры должно совпадать с числом формальных параметров, указанных при ее объявлении. Список формальных параметров каждой процедуры должен содержать ровно один параметр SQLCODE (код ответа процедуры; возможные значения кодов ответа стандартизованы, но некоторые из них определяются в реализации).