日期:2014-05-17  浏览次数:21087 次

请问如何实现触发其中又要对自身进行遍历?
表t1结构为:
JH——VARCHAR2(16)、DKDM——VARCHAR2(6) 、NY1——VARCHAR2(6)、NY2——VARCHAR2(6)、XS——Number
想在Update时实现这样的功能:
假设有一条记录 jh1  A00001  200101  200112  3  被Update了,那么我要在t1中遍历JH为jh1的所有记录(如果JH字段也发生了变化,那么新老井号都要遍历一遍),将数据按照某种算法处理后插入到表t2中。
我写了个触发器,用cursor mycur is select * from t1 where jh=:new.jh 来遍历,但是这样似乎不行,报Ora-04091错误。
这个功能该如何实现呢?
------最佳解决方案--------------------
你可以在行级触发器(for each row)中把new.jh存储到session级变量中,例如package的公共变量。
然后在after update的表级触发器中把这个变量读出来进行某种计算,同步到T2中