请高手达人来帮我看一下,我这个触发器有什么问题,第一次写不懂啊.
create or replace trigger Aft_Update_DZDM
after update of DZDM on tdw_xxh_dzjg
for each row
declare
cursor DZJG_Cursor is select ID, DZDM from TDW_XXH_DZJG;
ANewLen Integer;
AOldLen Integer;
ADZJG DZJG_Cursor%ROWTYPE;
begin
ANewLen := Length(:new.DZDM)+1;
AOldLen := Length(:old.DZDM);
open DZJG_Cursor;
loop
FETCH DZJG_Cursor INTO ADZJG;
EXIT WHEN DZJG_Cursor%NOTFOUND;
if substr(ADZJG.DZDM, 1, AOldLen) = :old.DZDM then
UPDATE TDW_XXH_DZJG SET DZDM=:new.DZDM||substr(ADZJG.DZDM, ANewLen) WHERE ID = ADZJG.ID;
end if;
end loop;
close DZJG_Cursor;
end Aft_Update_DZDM;
------解决方案--------------------触发器中对本表除了当前行数据,可以使用:NEW. / :OLD. 进行操作,其他的数据是不能进行操作的