2

我们的 Oracle DBLink 正在更改,我需要搜索对旧位置的引用,以便我们可以更新它们以指向新位置。我需要能够搜索整个九码的视图、程序、工作。视图太多了,一次只看一个。

使用 TOAD 或 SQL Developer,我如何在数据库中查询字符串文本?我找到了可以让我搜索对象的查询,但我需要进行更深入的搜索。

TIA

甲骨文10G

4

1 回答 1

3

程序和工作相对容易搜索:

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%';
于 2013-02-25T19:02:42.423 回答