Qui peut créer un paquet ?
L’instruction CREATE PACKAGE
peut être exécutée :
-
Utilisateurs avec le privilège
CREATE PACKAGE
.
L’utilisateur qui a créé l’en-tête du paquet devient le propriétaire du paquet.
L’instruction CREATE PACKAGE
peut être exécutée :
Utilisateurs avec le privilège CREATE PACKAGE
.
L’utilisateur qui a créé l’en-tête du paquet devient le propriétaire du paquet.
CREATE PACKAGE APP_VAR
AS
BEGIN
FUNCTION GET_DATEBEGIN() RETURNS DATE DETERMINISTIC;
FUNCTION GET_DATEEND() RETURNS DATE DETERMINISTIC;
PROCEDURE SET_DATERANGE(ADATEBEGIN DATE, ADATEEND DATE DEFAULT CURRENT_DATE);
END
Idem, mais les procédures et fonctions du paquet seront exécutées avec les droits de l’utilisateur qui les définit (propriétaire du paquet).
CREATE PACKAGE APP_VAR
SQL SECURITY DEFINER
AS
BEGIN
FUNCTION GET_DATEBEGIN() RETURNS DATE DETERMINISTIC;
FUNCTION GET_DATEEND() RETURNS DATE DETERMINISTIC;
PROCEDURE SET_DATERANGE(ADATEBEGIN DATE, ADATEEND DATE DEFAULT CURRENT_DATE);
END
ALTER PACKAGE
Modification de l’en-tête du paquet.
DSQL
ALTER PACKAGE package_name [<rights clause>] AS BEGIN [<package_item> ...] END <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>)] Pour plus d'informations, voir. CREATE PACKAGE
L’opérateur ALTER PACKAGE
modifie l’en-tête du paquet. Il vous permet de changer le nombre et la composition des procédures et des fonctions, leurs paramètres d’entrée et de sortie. Le code source du corps du paquet est conservé. L’état du corps du paquet correspondant à son en-tête est indiqué dans la colonne RDB$PACKAGES.RDB$VALID_BODY_FLAG
.
L’instruction ALTER PACKAGE
peut être exécutée :
Propriétaire du paquet ;
Utilisateurs avec le privilège ALTER ANY PACKAGE
.
ALTER PACKAGE APP_VAR
AS
BEGIN
FUNCTION GET_DATEBEGIN() RETURNS DATE DETERMINISTIC;
FUNCTION GET_DATEEND() RETURNS DATE DETERMINISTIC;
PROCEDURE SET_DATERANGE(ADATEBEGIN DATE, ADATEEND DATE DEFAULT CURRENT_DATE);
END
CREATE OR ALTER PACKAGE
Créer un nouvel en-tête de paquet ou modifier un en-tête de paquet existant.
DSQL
CREATE OR ALTER PACKAGE package_name [<rights clause>] AS BEGIN [<package_item> ...] END <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>)] Pour plus d'informations, voir. CREATE PACKAGE
L’instruction CREATE OR ALTER PACKAGE
crée un nouvel en-tête de paquetage ou modifie un en-tête de paquetage existant. Si l’en-tête de paquetage n’existe pas, il sera créé en utilisant l’instruction CREATE PACKAGE
. S’il existe déjà, il sera modifié et recompilé, tandis que les privilèges et dépendances existants seront préservés.
CREATE OR ALTER PACKAGE APP_VAR
AS
BEGIN
FUNCTION GET_DATEBEGIN() RETURNS DATE DETERMINISTIC;
FUNCTION GET_DATEEND() RETURNS DATE DETERMINISTIC;
PROCEDURE SET_DATERANGE(ADATEBEGIN DATE, ADATEEND DATE DEFAULT CURRENT_DATE);
END
DROP PACKAGE
Suppression de l’en-tête du paquet.
DSQL
DROP PACKAGE package_name
Paramètre | Description |
---|---|
package_name |
Nom du paquet. |
L’instruction DROP PACKAGE
supprime un en-tête de paquetage existant. Avant de supprimer un en-tête de paquetage (DROP PACKAGE
), le corps du paquetage (DROP PACKAGE BODY
) doit être supprimé, sinon une erreur sera générée. Si des dépendances existent sur l’en-tête du paquetage, une erreur sera générée lors de la tentative de suppression de cet en-tête.
L’instruction DROP PACKAGE
peut être exécutée :
Propriétaire du paquet ;
Utilisateurs avec le privilège DROP ANY PACKAGE
.
DROP PACKAGE APP_VAR;
RECREATE PACKAGE
Créer un nouvel en-tête de paquet ou recréer un en-tête de paquet existant.
DSQL
RECREATE PACKAGE package_name [<rights clause>] AS BEGIN [<package_item> ...] END <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>)] Pour plus d'informations, voir. CREATE PACKAGE
L’instruction RECREATE PACKAGE
crée un nouvel en-tête de paquetage ou recrée un en-tête de paquetage existant. Si un en-tête de paquetage portant ce nom existe déjà, l’instruction essaiera de le supprimer et de créer un nouvel en-tête de paquetage. Il n’est pas possible de recréer un en-tête de paquetage si l’en-tête de paquetage existant a des dépendances ou si le corps du paquetage existe. Après avoir recréé un en-tête de paquetage, les sous-routines et les privilèges du paquetage ne sont pas conservés.
RECREATE PACKAGE APP_VAR
AS
BEGIN
FUNCTION GET_DATEBEGIN() RETURNS DATE DETERMINISTIC;
FUNCTION GET_DATEEND() RETURNS DATE DETERMINISTIC;
PROCEDURE SET_DATERANGE(ADATEBEGIN DATE, ADATEEND DATE DEFAULT CURRENT_DATE);
END