【问题标题】:Trigger not firing for one particular CLOB column触发器未针对一个特定的 CLOB 列触发
【发布时间】:2016-05-03 16:56:58
【问题描述】:

我们有一个连接到 Oracle 11g 数据库的 C++ 遗留应用程序。该应用程序使用 Microsoft 数据访问对象 (DAO) 库来允许记录浏览和修改。我们还在表上设置了一些触发器来跟踪行更新和插入。

问题是触发器不会为我们表中的 CLOB 列触发。它会为其他列触发,但对于这一 CLOB 列,它既不会在更新期间触发,也不会在删除期间触发。我已经为所有三个添加了触发器:UPDATE、INSERT 和 DELETE。

是否有一些选项可以管理 CLOB 的触发器?或者其他一些可能会影响这一点的设置?我应该在哪里寻找解决方案?

【问题讨论】:

    标签: visual-c++ oracle11g dao clob database-trigger


    【解决方案1】:

    我找到了这个不触发触发器的可能解释:

    您的触发器确实有效——当它被触发时!

    问题是——当你设置 lob 值时,你并没有更新表。您可能正在修改 lob 内容,但是 - 这是关键 - 您没有修改表本身中的 lob 定位器。表的行值没有改变,触发器不会为 dbms_lob.copy 触发(或写入,或修剪,或追加,或...)

    我认为here at askTom提出的解决方案需要有一个具体的程序,但我不太明白。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-02
      • 2021-10-21
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      相关资源
      最近更新 更多