Qu'est-ce qu'un paquetage ?

Oracle offre la possibilité de créer des paquetages contenant des procédures et/ou fonctions.

Les paquetages sont très intéressants car ils permettent de grouper toutes les procédures, fonctions, variables et déclaration propres à l'API d'une table.

Exemple de déclaration d'un paquetage

CREATE OR REPLACE PACKAGE Usa_TAPIs IS

PROCEDURE autogen_column(pio_crtrec IN OUT Usages%ROWTYPE);

PROCEDURE autogen_column_ins(pio_crtrec IN OUT Usages%ROWTYPE);

PROCEDURE autogen_column_upd(pio_crtrec IN OUT Usages%ROWTYPE);

PROCEDURE uppercase_column(pio_crtrec IN OUT Usages%ROWTYPE);

PROCEDURE checktype_column(pio_crtrec IN OUT Usages%ROWTYPE);

PROCEDURE column_PEA(pio_crtrec IN OUT Usages%ROWTYPE);

PROCEDURE frozen_column(pio_newrec IN OUT Usages%ROWTYPE ,

pio_oldrec IN OUT Usages%ROWTYPE);

PROCEDURE tree_or_list_loop;

PROCEDURE tree_or_list_onlyone;

TYPE type_Usages IS TABLE OF Usages%ROWTYPE INDEX BY PLS_INTEGER;

vg_Usages type_Usages;

vg_insteadof_call BOOLEAN := FALSE;

END;

Le package ci-dessus fournit les procédures d'enrichissement de la table Usages.Par exemple la procédure autogen_column_ins() génère la valeur de clé primaire pour une table indépendante.

Le paramètre pio_crtrec est une copie des nouvelles valeurs de l'enregistrement à insérer..

Le paramètre pio_newrec est une copie des nouvelles valeurs de l'enregistrement à modifier.

Le paramètre pio_oldrec est une copie des anciennes valeurs de l'enregistrement à insérer ou modifier.

Exemple de corps d'un paquetage

CREATE OR REPLACE PACKAGE BODY Usa_TAPIs IS

...

PROCEDURE autogen_column_ins(pio_crtrec IN OUT Usages%ROWTYPE) IS

BEGIN

IF pio_crtrec.num IS NULL THEN

SELECT Usa_SEQPK.NEXTVAL INTO pio_crtrec.num FROM DUAL;

END IF;

END;

...

BEGIN

NULL;

END;

La procédure autogen_column_ins() génère, si nécessaire, la valeur de colonne de clé primaire pour une table indépendante en interrogeant la séquence créée pour la table.