【发布时间】:2017-08-07 12:19:48
【问题描述】:
问题是:我的程序更新了特定列中的值,几毫秒后该值为空。我尝试找到将特定列中的值更改为 null 的位置。
是否可以检查 Oracle DB 中列上的哪些过程/触发器调用更新?
【问题讨论】:
-
column in my table is cleaned这是什么意思?你想达到什么目的 -
@xing 我没有说清楚。这只是意味着此列中的值正在更改为 null。
-
您可以查看 all_dependencies 以查看依赖于该表的所有包/过程/触发器;然后人工审核。您可以查询所有包含相关表的代码的 ALL_SOURCE 或类似 'fieldname = NULL' 但是这些方法假设有问题的代码在数据库中。 (这两个都假设您拥有查看所有对象详细信息所需的权限。
-
如果我理解正确,您需要检查该列是否已更新。您可以为此使用triiger,如下所示。我不是假设它会是NULL。您可以在触发器中设置该条件。
-
您有可以从 IDE(SQL Developer、PL/SQL Developer 等)运行的测试用例吗?如果是这样,我会在调试器中单步执行。