如何查找由特定 plsql 方法更新的所有表

Posted

技术标签:

【中文标题】如何查找由特定 plsql 方法更新的所有表【英文标题】:How to find all tables updated by a particular plsql method 【发布时间】:2015-05-11 10:43:19 【问题描述】:

除了通过代码检查之外,有什么方法可以找到(可能)由特定 PLSQL 方法更新的所有表?

【问题讨论】:

【参考方案1】:

不,不是。

ALL_DEPENDENCIES 列出了由 PL/SQL 包静态引用的表,但其中包括读取的表和更新的表,并且它适用于整个包,而不仅仅是单个过程。未列出通过动态 SQL 更新的表。此外,过程可以调用包外的过程,它们可以依次更新其他表。

【讨论】:

【参考方案2】:

也许查询 all_source 表:

select * from  all_source
where name = 'procedure_name'
and upper(text) like upper('%update TABLE_NAME%');

虽然不完全是您想要的,但它会在 UPDATE 之后显示哪些过程、函数或包包含 table_name(假设它们在同一行上)。

【讨论】:

以上是关于如何查找由特定 plsql 方法更新的所有表的主要内容,如果未能解决你的问题,请参考以下文章

如何在所有表中查找特定列并在 PostgreSQL 中修改该列的值

plsql怎么查看所有表

plsql怎么查看所有表?

如何用plsql语句把一个表的所有列都转换为字符型

查找表的所有外键的最有效方法是啥?

如何使用spring data mongo更新所有行的特定列