CREATE PACKAGE
Création d'un en-tête de package.
DSQL
CREATE PACKAGE package_name [<rights clause>] AS BEGIN [<package_item> ...] END <rights clause> ::= SQL SECURITY {DEFINER | INVOKER} <package_item> ::= <function_decl>; | <procedure_decl>; <function_decl> ::= FUNCTION func_name [(<in_params>)] RETURNS <type> [COLLATE collation] [DETERMINISTIC] <procedure_decl> ::= PROCEDURE proc_name [(<in_params>)] [RETURNS (<out_params>)] <in_params> ::= <inparam> [, <inparam> ...] <inparam> ::= <param_decl> [{= | DEFAULT} <value>] <value> ::= {literal | NULL | context_var} <out_params> ::= <outparam> [, <outparam> ...] <outparam> ::= <param_decl> <param_decl> ::= paramname <type> [NOT NULL] [COLLATE collation] <type> ::= <datatype> | [TYPE OF] domain_name | TYPE OF COLUMN rel.col <datatype> ::= <scalar_datatype> | <blob_datatype> | <array_datatype> <scalar_datatype> ::= Voir Syntaxe des types de données scalaires. <blob_datatype> ::= Voir Syntaxe du type de données BLOB. <array_datatype> ::= Voir syntaxe des tableaux.
Paramètre | Description |
---|---|
package_name | Le nom du package, qui peut comporter jusqu'à 63 caractères. |
function_decl | Déclaration de fonction. |
procedure_decl | Déclaration de la procédure. |
proc_name | Nom de la procédure, pouvant contenir jusqu'à 63 caractères. |
func_name | Nom de la fonction. 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 | Nom du paramètre d'entrée ou de sortie de la procédure/fonction. 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/fonction, ainsi que ses variables locales. |
datatype | Type de données SQL. |
collation | Ordre de tri.Ordre de tri. |
domain_name | Nom de domaine. |
rel | Le nom d'une table ou d'une vue. |
col | Le nom de la colonne de la table ou de la vue. |
L'instruction CREATE PACKAGE crée un nouvel en-tête de packageage. Le nom du packageage doit être unique parmi tous les noms de packageage.
Les procédures et les fonctions déclarées dans l'en-tête du package sont disponibles en dehors du corps du package via l'identifiant complet du nom de la procédure et de la fonction (package_name.procedure_name
et package_name.function_name
). Les procédures et les fonctions définies dans le corps du package, mais non déclarées dans l'en-tête du package, ne sont pas visibles en dehors du corps du package.
Les noms de procédures et de fonctions déclarés dans l'en-tête du package doivent être uniques parmi les noms de procédures et de fonctions déclarés dans l'en-tête et le corps du package.
Note | Il est préférable que les noms des procédures stockées et des fonctions du packageage ne se chevauchent pas avec les noms des procédures stockées et des fonctions de l'espace de noms global, bien que cela soit acceptable. Le fait est que vous ne pouvez actuellement pas appeler une fonction/procédure de l'espace de noms global à l'intérieur d'un packageage si une fonction/procédure du même nom est déclarée dans le packageage. |