有没有人写过Oracle的触发器?我现在需要写一个触发器,可以同步(同步插入、复制、删除)两个schema中的表,但是编译时,总是不成功,请各位帮帮忙,多谢!高分
代码及错误如下:CREATE OR REPLACE TRIGGER tr_test_aa
AFTER INSERT ON "EXZSTV"."TEST"
REFERENCING OLD AS old NEW AS new
FOR EACH ROW Begin
IF INSERTING THEN
INSERT INTO "exnews"."TEST" (TESTaa)
VALUES(:NEW.TESTaa);
END IF;
end tr_test_aa ;
其中EXZSTV、exnews是两个schema,test是表名,testaa是字段,两个schema中都有test,并且表结构完全相同。
在编译时出现如下错误:
pls-00201:必须说明标识符‘exnews.test'
代码及错误如下:CREATE OR REPLACE TRIGGER tr_test_aa
AFTER INSERT ON "EXZSTV"."TEST"
REFERENCING OLD AS old NEW AS new
FOR EACH ROW Begin
IF INSERTING THEN
INSERT INTO "exnews"."TEST" (TESTaa)
VALUES(:NEW.TESTaa);
END IF;
end tr_test_aa ;
其中EXZSTV、exnews是两个schema,test是表名,testaa是字段,两个schema中都有test,并且表结构完全相同。
在编译时出现如下错误:
pls-00201:必须说明标识符‘exnews.test'
CREATE OR REPLACE TRIGGER tr_test_aa
AFTER INSERT ON "SBFINGER"."TEST"
REFERENCING OLD AS old NEW AS new
FOR EACH ROW Begin
IF INSERTING THEN
INSERT INTO "SBFINGER"."TEST" (NAME)
VALUES(:NEW.NAME);
END IF;
end tr_test_aa ;
/没问题,用spool写到文件里如下:
SQL> desc test
名称 空? 类型
----------------------------------------- -------- ----------------------------
NAME VARCHAR2(10)
EID VARCHAR2(10)
YEAR VARCHAR2(4)
MONTH VARCHAR2(2)SQL> @d:\xx.sql触发器已创建SQL> SPOOL OFF你是怎么执行的,写成sql语句的文件吗,你可能少了操作符号“/”,末尾一定的跟这个。
在一个我的sbfinger这里的权限是dba的。你在试试。
pls-00201:必须说明标识符‘exnews.test',为什么啊?郁闷中