有没有办法对所有oracle包和程序进行全文搜索?

时间:2008-10-30 21:53:49

标签: oracle data-dictionary

我想在我的所有程序包和函数中搜索某个短语。

由于可以使用toad检索已编译过程的代码,我假设全文存储在某些数据字典表中。有谁知道那会是什么?

非常感谢

3 个答案:

答案 0 :(得分:60)

您可以执行类似

的操作
SELECT name, line, text
  FROM dba_source
 WHERE upper(text) like upper('%<<your_phrase>>%') escape '\' 

答案 1 :(得分:4)

Toad的“对象搜索”例程将查看ALL_SOURCE(以及数据字典的其他部分)。当然,这将限于允许连接用户看到的对象。如果您有权访问DBA版本,那就太棒了。如果没有,你将不会搜索所有内容。

此外,如果您重新使用Oracle 7,或者您的数据库已从Oracle 7迁移到8i或9i(不确定大约10或11),则触发源可能不会出现在user_source或all_source视图中。最好检查一下。我发现让它出现的最简单方法是进行实际修改 - 例如添加一个空格 - 并重新编译触发器。

答案 2 :(得分:1)

你的意思是使用PL / SQL吗?或者只是使用TOAD?我知道您可以使用“查找对象”(或类似的东西)功能手动搜索所有对象,如过程,表格等...