Livres de référence pour maîtriser la modélisation des données
Oracle offre un riche panel de déclencheurs.
Pour la génération des APIs de tables de ce site, nous avons retenus les 12 déclencheurs obéissant aux 3 jeux de critères ci-après :
Nous utiliserons ces 12 déclencheurs au niveau de la manipulation des tables.
Pour la manipulation des données au travers des vues, ce que permet Oracle, nous avons retenu les 3 déclencheurs INSTEAD OF obéissant au critère de nature de la manipulation [INSERT | UPDATE | DELETE ]
Nota: Pour spécifier un déclencheur de table au niveau de l'ordre (STATEMENT) , il faut omettre d'écrire la clause FOR EACH ROW.
CREATE OR REPLACE TRIGGER Usa_BIR BEFORE
INSERT ON Usages FOR EACH ROW DECLARE vl_newrec Usages%ROWTYPE;
BEGIN
vl_newrec.num := :NEW.num;
vl_newrec.code := :NEW.code;
vl_newrec.libelle := :NEW.libelle;
vl_newrec.descriptif := :NEW.descriptif;
vl_newrec.ordre := :NEW.ordre;
Usa_TAPIs.autogen_column_ins(vl_newrec);
Usa_TAPIs.autogen_column(vl_newrec);
Usa_TAPIs.checktype_column(vl_newrec);
Usa_TAPIs.uppercase_column(vl_newrec);
Usa_TAPIs.column_PEA(vl_newrec);
:NEW.num := vl_newrec.num;
:NEW.code := vl_newrec.code;
:NEW.libelle := vl_newrec.libelle;
:NEW.descriptif := vl_newrec.descriptif;
:NEW.ordre := vl_newrec.ordre;
END;
Le déclencheur ci-dessus intercepte l'insertion d'un nouveau tuple dans la table Usages avant son exécution.
Le mot-clé :NEW retourne le pseudo-enregistrement à insérer. Les parties du pseudo-enregistrement (colonnes de la table) peuvent être modifiées.
Les procédures stockées appelées par le déclencheur traitent le pseudo-enregistrement qu'elles reçoivent en paramètre. Par exemple la procédure autogen_column_ins() génère la valeur de clé primaire pour une table indépendante.