我们的 Oracle DBLink 正在更改,我需要搜索对旧位置的引用,以便我们可以更新它们以指向新位置。我需要能够搜索整个九码的视图、程序、工作。视图太多了,一次只看一个。
使用 TOAD 或 SQL Developer,我如何在数据库中查询字符串文本?我找到了可以让我搜索对象的查询,但我需要进行更深入的搜索。
TIA
甲骨文10G
程序和工作相对容易搜索:
select * from dba_source where upper(text) like '%@MY_LINK%';
select * from dba_jobs where upper(what) like '%@MY_LINK%';
select * from dba_scheduler_jobs where upper(job_action) like '%@MY_LINK%';
但观点很难:
select * from dba_views where upper(text) like '%@MY_LINK%';
ORA-00932: inconsistent datatypes: expected NUMBER got LONG
有几种使用 LONG 的方法。最简单的方法是使用 PL/SQL,并选择每个 text ...into v_varchar2_32767...
。但是这种方法不是很容易修改。
您可能想查看Dictionary Long Application,它将 LONG 转换为 CLOB。然后你可以使用这样的查询:
select *
from table(dla_pkg.query_view('select * from dba_views'))
where upper(text) like '%@MY_LINK%';