如何查找由特定 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 方法更新的所有表的主要内容,如果未能解决你的问题,请参考以下文章