Database Reference
In-Depth Information
Tableau 4-34 : Déclencheur INSTEAD OF pour l'insertion dans une collection d'une vue
Code du déclencheur
Commentaire
Création.du.déclencheur.et.description.de.
l'événement.déclencheur.
CREATE TRIGGER trg_insert_v_obj_dept_emps
INSTEAD OF INSERT
ON NESTED TABLE emps_nt OF v_obj_dept_emps
REFERENCING NEW AS emp PARENT AS dept
FOR EACH ROW
BEGIN
Insertion.du.nouvel.employé.(e-mail.
automatiquement.construit,.emploi.affecté.
arbitrairement.à. 'IT_PROG' ).
INSERT INTO hr.employees
(employee_id,irst_name,last_name,email,
phone_number,hire_date,job_id,
salary,commission_pct,manager_id,department_id)
VALUES
(:emp.id_emp,:emp.prenom,:emp.nom,
UPPER(SUBSTR(:emp.prenom,1,1)||:emp.nom),NULL,
:emp.date_embauche,'IT_PROG',NULL,
NULL,NULL,:dept.n_dept);
END;
Le scénario suivant décrit une insertion dans la collection de la vue et vériie la présence des
données dans la table source et dans la vue objet.
Tableau 4-35 : Insertion d'une vue complexe
Code SQL
Commentaire
Ajout.d'un.nouvel.employé.rattaché.au.
département 40.
SQL> INSERT INTO TABLE
(SELECT emps_nt FROM v_obj_dept_emps
WHERE n_dept=40) VALUES
(elt_emp_t(999,'Fred','Brouard',SYSDATE));
1 row created.
SQL> SELECT employee_id,irst_name,last_name,email,
hire_date,job_id,department_id FROM hr.employees
WHERE employee_id = 999;
EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL HIRE_DATE JOB_ID DEPARTMENT_ID
------------ ------------- ------------- ------------- ----------- ------- --------------
999 Fred Brouard FBROUARD 31-OCT-11 IT_PROG 40
SQL> SELECT v.nom_dept,ant.id_emp,ant.prenom,ant.nom
FROM v_obj_dept_emps v, TABLE(v.emps_nt) ant
WHERE v.n_dept=40;
NOM_DEPT ID_EMP PRENOM NOM
---------------------------------- --------- --------------------- ----------
Human Resources 999 Fred Brouard
Human Resources 203 Susan Mavris
 
Search WWH ::




Custom Search