CREATE PROCEDURE
Erstellen einer neuen gespeicherten Prozedur
DSQL, ESQL
CREATE PROCEDURE procname [ ( [ <in_params> ] ) ] [RETURNS (<out_params>)] {<psql_procedure> | <external-module-body>} <in_params> ::= <inparam> [, <inparam> ...] <inparam> ::= <param_decl> [{= | DEFAULT} <value>] <out_params> ::= <outparam> [, <outparam> ...] <outparam> ::= <param_decl> <value> ::= {<literal> | NULL | <context_var>} <param_decl> ::= paramname <domain_or_non_array_type> [NOT NULL] [COLLATE collation] <type> ::= <datatype> | [TYPE OF] domain | TYPE OF COLUMN rel.col <domain_or_non_array_type> ::= !! Siehe auch Syntax für Skalardatentypen !! <psql_procedure> ::= [SQL SECURITY {INVOKER | DEFINER}] <psql-module-body> <psql-module-body> ::= !! Siehe auch Syntax des Modulrumpfes !! <external-module-body> ::= !! Siehe auch Syntax des Modulrumpfes !!
Parameter | Beschreibung |
---|---|
procname |
Name der gespeicherten Prozedur.Die maximale Länge beträgt 63 Zeichen.Muss unter allen Tabellen-, Ansichts- und Prozedurnamen in der Datenbank eindeutig sein |
inparam |
Beschreibung der Eingabeparameter |
outparam |
Beschreibung der Ausgangsparameter |
literal |
Ein Literalwert, der mit dem Datentyp des Parameters zuweisungskompatibel ist |
context_var |
Jede Kontextvariable, deren Typ mit dem Datentyp des Parameters kompatibel ist |
paramname |
Der Name eines Eingabe- oder Ausgabeparameters der Prozedur.Er kann aus bis zu 63 Zeichen bestehen.Der Name des Parameters muss unter den Eingabe- und Ausgabeparametern der Prozedur und ihrer lokalen Variablen eindeutig sein |
collation |
Sortierreihenfolge |
Die Anweisung CREATE PROCEDURE
erstellt eine neue gespeicherte Prozedur.Der Name der Prozedur muss unter den Namen aller gespeicherten Prozeduren, Tabellen und Ansichten in der Datenbank eindeutig sein.
CREATE PROCEDURE
ist eine zusammengesetzte Anweisung, bestehend aus einem Header und einem Body.Der Header gibt den Namen der Prozedur an und deklariert Eingabeparameter und gegebenenfalls Ausgabeparameter, die von der Prozedur zurückgegeben werden sollen.
Der Prozedurrumpf besteht aus Deklarationen für alle lokalen Variablen und benannten Cursors, die von der Prozedur verwendet werden, gefolgt von einer oder mehreren Anweisungen oder Anweisungsblöcken, die alle in einem äußeren Block eingeschlossen sind, der mit dem Schlüsselwort BEGIN
beginnt und mit . endet das Schlüsselwort END
.Deklarationen und eingebettete Anweisungen werden mit Semikolons (‘;
’) abgeschlossen.