CREATE PROCEDURE
Créez une nouvelle procédure stockée.
DSQL, ESQL
CREATE PROCEDURE procname [(<inparam> [, <inparam> ...])] [ RETURNS (<outparam> [, <outparam> ...]) ] <routine body> <inparam> ::= <param_decl> [{= | DEFAULT} <value>] <outparam> ::= <param_decl> <value> ::= {literal | NULL | context_var} <param_decl> ::= paramname <type> [NOT NULL] [COLLATE collation] <type> ::= <datatype> | [TYPE OF] domain_name | TYPE OF COLUMN rel.col <datatype> ::= <scalar_datatype> | <blob_datatype> <scalar_datatype> ::= Voir Syntaxe des types de données scalaires. <blob_datatype> ::= Voir Syntaxe du type de données BLOB. <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> ::= Voir module-body syntax. <external-routine-spec> ::= <external-routine-reference> [AS <extbody>] <external-routine-reference> ::= EXTERNAL NAME '<extname>' ENGINE <engine> <extname> ::= '<module-name>!<routine-name>[!<misc-info>]'
Paramètre | Description |
---|---|
procname |
Le nom de la procédure stockée.Peut contenir jusqu’à 63 caractères. |
inparam |
Description du paramètre d’entrée. |
outparam |
Description du paramètre de sortie. |
literal |
Un littéral dont le type est compatible avec le paramètre. |
context_var |
Toute variable contextuelle dont le type est compatible avec celui du paramètre. |
paramname |
Le nom du paramètre d’entrée ou de sortie de la procédure.Peut contenir jusqu’à 63 caractères.Le nom du paramètre doit être unique parmi les paramètres d’entrée et de sortie de la procédure, ainsi que parmi ses variables locales. |
extbody |
Le corps de la procédure externe.Une chaîne littérale qui peut être utilisée par l’UDR à diverses fins. |
module-name |
Nom du module externe dans lequel se trouve la fonction. |
routine-name |
Nom de la fonction interne dans un module externe. |
misc-info |
Informations définies par l’utilisateur à envoyer à une fonction de module externe. |
engine |
Nom du moteur pour utiliser les fonctions externes.En général, le nom de l’UDR est spécifié. |
datatype |
Le type de données SQL. |
collation |
Ordre de tri. |
domain_name |
Nom de domaine. |
rel |
Le nom d’une table ou d’une vue. |
col |
Nom de la colonne de la table ou de la vue. |
L’instruction CREATE PROCEDURE
crée une nouvelle procédure stockée.Le nom de la procédure stockée doit être unique parmi les noms de toutes les procédures stockées, tables et vues de la base de données.
Note
|
Il est également souhaitable que le nom de la procédure stockée soit unique parmi les noms des procédures des paquets PSQL, bien que cela soit autorisé.Le fait est qu’actuellement vous ne pouvez pas appeler une fonction/procédure de l’espace de nom global dans un paquet si une fonction/procédure du même nom est déclarée dans le paquet.Dans ce cas, la fonction/procédure du paquet sera toujours appelée. |
CREATE PROCEDURE
est une déclaration composite composée d’un en-tête et d’un corps.
L’en-tête définit le nom de la procédure stockée et déclare les paramètres d’entrée et de sortie s’ils doivent être renvoyés par la procédure.
Le corps de la procédure est constitué de déclarations facultatives de variables locales, de sous-routines et de curseurs nommés, et d’une ou plusieurs instructions, ou blocs d’instructions, enfermés dans un bloc externe qui commence par le mot-clé BEGIN
et se termine par le mot-clé END
.Les déclarations de variables locales et les curseurs nommés ainsi que les instructions internes doivent se terminer par un point-virgule (“;”).