我们有一个连接到Oracle 11g数据库的C ++遗留应用程序。该应用程序使用Microsoft数据访问对象(DAO)库来允许记录浏览和修改。我们还在表上有一些触发器来跟踪行更新和插入。
问题是触发器不会触发我们表中的CLOB列。它被其他列激发,但对于这一个CLOB列,它既不会在更新期间也不会在删除期间触发。我已经为所有三个添加了触发器:UPDATE,INSERT和DELETE。
是否有一些选项可以管理CLOB的触发器?或者其他一些可能影响这个的设置?我应该在哪里寻找解决方案?
答案 0 :(得分:0)
我找到了这个非击发触发器的可能解释:
你的触发器确实有效 - 当它被解雇时!
问题是 - 设置lob值时不更新表。您可能正在修改lob内容但是 - 这是关键 - 您不是在修改表本身中的lob定位器。表的行值没有改变,触发器不会触发dbms_lob.copy(或写入,修剪或追加,或......)
我认为提出的解决方案here at askTom需要有一个特定的程序,但我还没有完全理解它。