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

Posted

技术标签:

【中文标题】有没有办法对所有 oracle 包和程序进行全文搜索?【英文标题】:Is there a way to do full text search of all oracle packages and procedures? 【发布时间】:2008-10-30 21:53:48 【问题描述】:

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

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

非常感谢

【问题讨论】:

【参考方案1】:

你可以这样做

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

【讨论】:

如果您无权访问 dba_source 和/或只想在代码中搜索特定架构,则可以使用 user_source 而不是 dba_source。 all_source 如果您无权访问dba_sourceall_source 将包括“当前用户可访问的存储对象”。 (download.oracle.com/docs/cd/E11882_01/server.112/e17110/…) 我赞同@David Aldridge 的建议,@Justin Cave【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

我的意思是我的 plsql 程序的 plsql 代码,是的。蟾蜍查找对象搜索对我不起作用,不知道为什么(另外,我只想知道过程文本的存储位置)

以上是关于有没有办法对所有 oracle 包和程序进行全文搜索?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法对 Oracle 中的更改通知进行故障排除?

全文检索工具都有哪些?

使用chromedriver实现豆瓣网页的全网页截图

oracle数据库实现全文检索

Oracle 是不是支持全文搜索?

使用 mongoose 全文搜索和 KeystoneJS 分页