create or replace trigger trg_ai_table1
after insert on table1
for each row
begin
insert into table1@linkorcl(col1,col2)
select :New.col1,:New.col2
from table1
end;
/
上面这个触发器是想当服务器的table1中添加新数据的时候,客户端也同步添加相应的数据,但是总数娴熟这个警告
Warning: Trigger created with compilation errors.
不知道如何解决table1是服务器中的表,客户端的表也叫table1。link已经建立,测试过可以用
急求解决方法???????
after insert on table1
for each row
begin
insert into table1@linkorcl(col1,col2)
select :New.col1,:New.col2
from table1
end;
/
上面这个触发器是想当服务器的table1中添加新数据的时候,客户端也同步添加相应的数据,但是总数娴熟这个警告
Warning: Trigger created with compilation errors.
不知道如何解决table1是服务器中的表,客户端的表也叫table1。link已经建立,测试过可以用
急求解决方法???????
select :New.col1,:New.col2
from table1
这个语句缺省;号
insert into table1@linkorcl(col1,col2) values(:New.col1,:New.col2);
end;
现在可以创建触发器
但是插入数据的时候又有新问题了
SQL> insert into TB_SI_SCHEDULE(HEAT_ID,STEEL_GRADE)
2 values('F00000003','ML08AL');
insert into TB_SI_SCHEDULE(HEAT_ID,STEEL_GRADE)
*
ERROR at line 1:
ORA-04091: table SYSTEM.TB_SI_SCHEDULE is mutating, trigger/function may not
see it
ORA-02063: preceding line from SG
ORA-02063: preceding 2 lines from LINKORCL
ORA-06512: at "SYSTEM.TRG_AI_TB_SI_SCHEDULE", line 2
ORA-04088: error during execution of trigger 'SYSTEM.TRG_AI_TB_SI_SCHEDULE'刚才google一下错误的原因,有人说 trigger都不支持dml原表
不知道是不是这个原因
如果是这个原因,要实现我的功能应该怎么改?
after insert on table1
for each row
begin
insert into table1@linkorcl(col1,col2)
select :New.col1,:New.col2
from dual;
end;