salut
j'ai créé une table employer

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
create table employer(empno number(4),empname varchar2(15),no_tel varchar2(10)
,date_naiss date,salaire number,deptno number);
puis une table emp2

Code : Sélectionner tout - Visualiser dans une fenêtre à part
create table emp2 as select * from employer where empno> 100
puis une vue comme un shéma global des deux tables

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
create view v_emp
as 
select * from employer
union all
select * from emp2;
puis j'ai créé un trigger pour faire l'insertion sur la vue

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
create or replace trigger tr_insert 
instead of insert on v_emp
 
begin
  if :old.empno>100 then
    insert into emp2 values(:new.empno, :new.empname, :new.no_tel,:new.date_naiss, 
                            :new.salaire,:new.deptno);
  else
    insert into employer values(:new.empno, :new.empname, :new.no_tel,:new.date_naiss, 
                            :new.salaire,:new.deptno);
  end if;
end;
soit avec new ou old le résultat d'insertion est la même chose lorsque j'écris ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
insert into v_emp values(500,'500','500','22-2-2009',500,500);
empno = 500 , normalement l'insertion se fait sur la table emp 2
mais il a fait sur la table employer malgré la condition est clair : if :old.empno>100