你因改这样来来写 after UPDATE OF "SYBZ" ON "ZCBBXX" FOR EACH ROW 这样就好了. 不要忘记给分
同学你的错了,当我运行到 select bbxxbh into old_version from zcbbxx where :old.sybz = '1';提示我的错误是: 触发器/函数不能读,执行时出错,哪儿有错误呀。
在定义个变量, v1 varchar2(20); 在select 前, v1:=:old.sybz ; select bbxxbh into old_version from zcbbxx where :old.sybz = v1;
在定义变量 v1 vchar2(1); v1:=:old.sybz ; select bbxxbh into old_version from zcbbxx where :old.sybz =v1;
这个例子. create or replace trigger xx after update of a2 on t3 for each row declare new1 varchar2(20); new2 varchar2(20); begin select :old.a1 into new1 from t3 where :old.a2='1'; select :new.a1 into new2 from t3 where :new.a2='1'; end 测试通过
CREATE OR REPLACE TRIGGER "BBGX_TRIG" before UPDATE OF "SYBZ" ON "ZCBBXX" declare old_version varchar2(20); new_version varchar2(20); begin old_version:=:old.bbxxbh; new_version:=:new.bbxxbh;
after UPDATE OF "SYBZ" ON "ZCBBXX" FOR EACH ROW
这样就好了.
不要忘记给分
select bbxxbh into old_version from zcbbxx
where :old.sybz = '1';提示我的错误是:
触发器/函数不能读,执行时出错,哪儿有错误呀。
v1 varchar2(20);
在select 前,
v1:=:old.sybz ;
select bbxxbh into old_version from zcbbxx
where :old.sybz = v1;
v1 vchar2(1);
v1:=:old.sybz ;
select bbxxbh into old_version from zcbbxx
where :old.sybz =v1;
create or replace trigger xx
after update of a2 on t3 for each row
declare
new1 varchar2(20);
new2 varchar2(20);
begin
select :old.a1 into new1 from t3 where :old.a2='1';
select :new.a1 into new2 from t3 where :new.a2='1';
end
测试通过
before UPDATE OF "SYBZ" ON "ZCBBXX"
declare
old_version varchar2(20);
new_version varchar2(20);
begin
old_version:=:old.bbxxbh;
new_version:=:new.bbxxbh;
end
/