下面这个替代触发器有问题,现现编译错误:
create or replace trigger insertesview
 instead of insert on esview
begin
 insert into emp(xm,zc) values(:new.xm,:new.zc);
 insert into salary (xm,jb,gz) values( :new.xm, : new.jb, :new.gz);
end insertesview;
/问题出现在第二个插入语句,如删除去第二个插入语句可以通过,或者是在values中输入具体的值,如:
insert into salary(xm,jb,gz) values('aa',1,1);
把第二个插入语句改成上面的语句也可以,想请问大家,这是为什么?

解决方案 »

  1.   

    insert into salary (xm,jb,gz) values( :new.xm, : new.jb, :new.gz); 
    改变下 :new.xm名称试试
      

  2.   

    自己看下你的esview 是怎样写的!
      还有,记得在end insertesview前加上:commit;
      

  3.   

    看下视图的定义
    select text from user_views
    where view_name='ESVIEW'是否包含了那4个字段
    出错具体报的是什么错楼上说错了,触发器里不能有commit
    自治事务除外
      

  4.   

    当建立instead of触发器时,必须指定 for each row选项吧