我正在尝试在表中插入数据,并通过db链接将数据复制到另一个表中,但是触发器给了我重新验证错误。
connect SYSTEM/admin@orcl1;
create database link conorcl1 connect to SYSTEM identified by admin using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = localhost)(PORT = 1521)))(CONNECT_DATA =(SID = orcl2)))';
创建表emp:
create table emp (eno number, ename varchar2(20), address varchar(20), email varchar2(20), salary number);
connect SYSTEM/admin@orcl2;
create database link conorcl2 connect to SYSTEM identified by admin using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = localhost)(PORT = 1521)))(CONNECT_DATA =(SID = orcl1)))';
create table emp (eno number, ename varchar2(20), address varchar(20), email varchar2(20), salary number);
创建触发器emptrigger:
create or replace trigger emptrigger
after insert or update of ename,address,email,salary or delete on emp
for each row begin
if inserting then
INSERT INTO emp@conorc1
VALUES(:new.eno,:new.ename,:new.address,:new.email,:new.salary);
INSERT INTO emp@conorcl2
VALUES(:new.eno,:new.ename,:new.address,:new.email,:new.salary );
end if;
if updating then
update emp@conorcl1 set ename=:new.ename where eno=:new.eno;
update emp@conorcl2 set ename=:new.ename where eno=:new.eno;
update emp@conorcl1 set address=:new.address where eno=:new.eno;
update emp@conorcl2 set address=:new.address where eno=:new.eno;
update emp@conorcl1 set email=:new.email where eno=:new.eno;
update emp@conorcl2 set email=:new.email where eno=:new.eno;
update emp@conorcl1 set salary=:new.salary where eno=:new.eno;
update emp@conorcl2 set salary=:new.salary where eno=:new.eno;
end if;
if deleting then
delete from emp@conorcl1 where eno=:new.eno;
delete from emp@conorcl2 where eno=:new.eno; end if;
end;
/
有人可以帮助我触发我在oracle 9i中执行吗