CREATE PROCEDURE name [(param <datatype> [, param <datatype>...])]
[RETURNS <datatype> [, param <datatype>...])]
AS <procedure_body> [terminator]
<procedure_body> =
[<variable_declaration_list>]
<block>
<variable_declaration_list> =
DECLARE VARIABLE var <datatype>; [DECLARE VARIABLE var <datatype>;...]
<block> =
BEGIN
<compound_statement>
[<compound_statement>...]
END
<compound_statement> = {<block> | statement;}
<datatype> = {
{SMALLINT | INTEGER | FLOAT | DOUBLE PRECISION}
| {DECIMAL | NUMERIC} [(precision [, scale])]
| DATE
| {CHAR | CHARACTER | CHARACTER VARYING | VARCHAR} [(int)]
[CHARACTER SET charname]
| {NCHAR | NATIONAL CHARACTER | NATIONAL CHAR} [VARYING] [(int)]}
Аргумент | Описание |
name | Имя процедуры. Должно быть уникальным среди процедур, таблиц и видов. |
param <datatype> | Входной параметр, который вызывающая программа использует, чтобы передать значения процедуре.
|
RETURNS param <datatype> | Выходной параметр, который процедура использует, чтобы вернуть значения в вызывающую программу.
|
AS | Ключевое слово, которое разделяет заголовок процедуры и тело процедуры. |
DECLARE VARIABLE var <datatype> | Объявляет локальные переменные используемые только в процедуре. Каждому объявлению должно предшествовать DECLARE VARIABLE и должно завершатся точкой с запятой (;).
|
statement | Любая одиночная инструкция в языке процедур и триггеров InterBase. Каждая инструкция (исключая BEGIN и END) должна завершатся точкой с запятой (;). |
terminator | Терминатор определенный SET TERM, который указывает завершение тела процедуры. Используется только в ISQL |
|
|