Gle*_*ark 25 sql oracle search full-text-search
我需要编写一些sql来允许我查询Oracle数据库中的所有对象.不幸的是,我们被允许使用的工具没有内置.基本上,我需要搜索所有表,过程,触发器,视图,一切.
我知道如何搜索对象名称.但我需要搜索对象的内容.即SELECT*FROM DBA_OBJECTS WHERE object_name ='%search string%';
谢谢,格伦
Chr*_*lls 31
我不确定我是否完全理解这个问题,但是如果你想在数据库中搜索特定搜索字符串的对象,请尝试:
SELECT owner, name, type, line, text
FROM dba_source
WHERE instr(UPPER(text), UPPER(:srch_str)) > 0;
Run Code Online (Sandbox Code Playgroud)
如果您需要更多信息,可以从那里查找对象/行号.
Dre*_*vak 19
我不确定我是否理解你,但查询你可以尝试使用"user_source"表的触发器,程序,包和函数的源代码.
select * from user_source
Run Code Online (Sandbox Code Playgroud)
小智 9
我会使用DBA_SOURCE(如果您有权访问它),因为如果您需要的对象不属于您登录的模式,您将无法看到它.
如果您需要了解包中的函数和Procs,请尝试以下方法:
select * from all_source
where type = 'PACKAGE'
and (upper(text) like '%FUNCTION%' or upper(text) like '%PROCEDURE%')
and owner != 'SYS';
Run Code Online (Sandbox Code Playgroud)
最后一行阻止返回所有sys内容(DBMS_等).如果您只想要自己的架构内容,这将在user_source中工作.
我在尝试查找使用某个表的所有程序时遇到了这个问题
正如本文所指出的,Oracle SQL Developer 提供了此功能:https : //www.thatjeffsmith.com/archive/2012/09/search-and-browse-database-objects-with-oracle-sql-developer/
从视图菜单中,选择查找数据库对象。选择一个数据库连接。输入表的名称。在对象类型中,只保留函数、过程和包。在代码部分,选中所有源代码行。
| 归档时间: |
|
| 查看次数: |
120761 次 |
| 最近记录: |