首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle:搜索所有存储的过程/触发器/其他数据库代码?

Oracle:搜索所有存储的过程/触发器/其他数据库代码?
EN

Stack Overflow用户
提问于 2011-04-21 03:15:51
回答 4查看 10.5K关注 0票数 7

是否可以在Oracle中跨多个模式搜索所有编程对象(函数、存储过程、触发器等)?

有许多表在我的代码中似乎没有使用,但我不想在没有事先检查的情况下删除它们来破坏任何东西。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-21 03:21:47

可以搜索对象代码--通常使用DBMS_METADATA包为对象生成动态链接库,然后搜索CLOB。然而,这听起来并不是你真正想要做的。

如果您只是试图确定系统中的任何代码是否引用了一个表,那么您通常会希望使用DBA_DEPENDENCIES视图(或者根据您的权限和所查找的范围,使用ALL_DEPENDENCIESUSER_DEPENDENCIES )。就像这样

代码语言:javascript
复制
SELECT *
  FROM dba_dependencies
 WHERE referenced_owner = 'SCOTT'
   AND referenced_name  = 'EMP'
   AND referenced_type  = 'TABLE'

将向您展示依赖于SCOTT模式中的EMP表的所有内容。

惟一需要搜索代码而不是查看DBA_DEPENDENCIES的情况是,当您有执行动态DBA_DEPENDENCIES的代码时,表名是硬编码的。但在实践中,这相对不太可能。

票数 12
EN

Stack Overflow用户

发布于 2011-04-21 03:18:46

您可以搜索DBA_SOURCE视图:

代码语言:javascript
复制
SELECT *
  FROM dba_source
 WHERE UPPER(text) LIKE '%YOUR_TABLE_NAME%';
票数 2
EN

Stack Overflow用户

发布于 2016-05-06 01:36:54

要在Toad中执行此操作,请选择:

搜索=>对象搜索

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5735463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档