是否有办法对所有oracle软件包和过程进行全文搜索?

是否有办法对所有oracle软件包和过程进行全文搜索?,oracle,data-dictionary,Oracle,Data Dictionary,我想在我所有的程序包和函数中搜索某个短语 因为可以使用toad检索编译过程的代码,所以我假设全文存储在某个数据字典表中。有人知道会在哪里吗 非常感谢您是说使用PL/SQL吗?还是仅仅用蟾蜍?我知道您可以使用“查找对象”或类似功能手动搜索所有对象,如进程、表等。您可以执行以下操作 SELECT name, line, text FROM dba_source WHERE upper(text) like upper('%<<your_phrase>>%') escap

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

因为可以使用toad检索编译过程的代码,所以我假设全文存储在某个数据字典表中。有人知道会在哪里吗


非常感谢

您是说使用PL/SQL吗?还是仅仅用蟾蜍?我知道您可以使用“查找对象”或类似功能手动搜索所有对象,如进程、表等。

您可以执行以下操作

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

蟾蜍的对象搜索例程将查看所有源和数据字典的其他部分。当然,这仅限于允许连接的用户查看的对象。如果您可以访问DBA版本,那就太好了。否则,您将不会搜索所有内容


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

我是说我的plsql过程的plsql代码,是的。toad find objects搜索对我不起作用,我也不知道为什么,我只想知道过程的文本存储在哪里。如果您没有访问dba_源的权限和/或只想在代码中搜索特定模式,则可以使用user_源而不是dba_源。如果您没有访问dba_源的权限,则使用all_源。所有源将包括当前用户可访问的存储对象。我支持大卫·奥尔德里奇的建议,贾斯汀·凯夫