Database Reference
In-Depth Information
En insertion, le déclencheur INSTEAD OF devra se charger d'affecter une valeur (unique) à la
clé primaire, de rechercher le code du manager et d'affecter NULL à la colonne manquante de
la vue ( location_id ).
Tableau 4-30 : Déclencheur INSTEAD OF pour l'insertion
Code du déclencheur
Commentaire
Création.du.déclencheur.et.
description.de.l'événement.
déclencheur.
CREATE TRIGGER trg_insert_v_dept_calculs
INSTEAD OF INSERT ON v_dept_calculs
FOR EACH ROW
DECLARE
id_dept NUMBER(4);
id_mgr NUMBER(6);
BEGIN
Génération.du.numéro.du.nouveau.
département.
SELECT MAX(department_id)+ABS(MOD(DBMS_RANDOM.RANDOM,100))
INTO id_dept FROM hr.departments;
Recherche.du.numéro.du.manager.
SELECT employee_id INTO id_mgr
FROM hr.employees
WHERE UPPER(last_name)=UPPER(:NEW.manager);
Insertion.du.nouveau.département.
INSERT INTO hr.departments
(department_id,department_name,manager_id,location_id)
VALUES (id_dept,:NEW.departement,id_mgr,NULL);
Exception.à.traiter.si.le.nouveau.
manager.n'est.pas.référencé.
EXCEPTION
WHEN NO_DATA_FOUND THEN
id_mgr := NULL;
END;
Le scénario suivant décrit une insertion dans la vue qui met à jour la table. Les nouvelles
données n'apparaissent pas dans initialement la vue, car le département est pour l'instant non
pourvu d'employés.
 
Search WWH ::




Custom Search