Livres de référence pour maîtriser la modélisation des données
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.
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.
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.