Тело модуля
Тело модуля может быть написано на языке PSQL или быть телом внешнего модуля.
<routine-body> ::= <psql-routine-spec> | <external-routine-spec> <psql-routine-spec> ::= [<rights-clause>] <psql-routine-body> <rights-clause> ::= SQL SECURITY {DEFINER | INVOKER} <psql-routine-body> ::= AS [<declarations>] BEGIN [<PSQL_statements>] END <declarations> ::= <declare-item> [<declare-item> ...] <declare-item> ::= <declare-var>; | <declare-cursor>; | <subroutine-declaration>; | <subroutine-implementation> <subroutine-declaration> ::= <subfunc-decl> | <subproc-decl> <subroutine-implementation> ::= <subfunc-impl> | <subproc-impl> <external-routine-spec> ::= <external-routine-reference> [AS <extbody>] <external-routine-reference> ::= EXTERNAL NAME <extname> ENGINE <engine> <extname> ::= '<module-name>!<routine-name>[!<misc-info>]'
Параметр | Описание |
---|---|
declare-var |
Объявление локальной переменной. |
declare-cursor |
Объявление именованного курсора. |
subfunc-decl |
Объявление подпрограммы – функции. |
subproc-decl |
Объявление подпрограммы – процедуры. |
subfunc-impl |
Реализация подпрограммы – функции. |
subproc-impl |
Реализация подпрограммы – процедуры. |
extbody |
Тело внешней процедуры.Строковый литерал который может использоваться UDR для различных целей. |
module-name |
Имя внешнего модуля, в котором расположена функция. |
routine-name |
Внутреннее имя функции внутри внешнего модуля. |
misc-info |
Определяемая пользователем информация для передачи в функцию внешнего модуля. |
engine |
Имя движка для использования внешних функций.Обычно указывается имя UDR. |