我们的Oracle DBLink正在发生变化,我需要搜索旧位置的引用,以便我们可以更新它们以指向新位置。我需要能够搜索整个九码的视图,程序,工作。有太多的观点,每次都要看一个。
使用TOAD或SQL Developer,如何在数据库中查询字符串文本?我找到了允许我搜索对象的查询,但我需要搜索更深层次的搜索。
TIA
Oracle 10G
答案 0 :(得分: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,并选择每个文本...into v_varchar2_32767...
。但是这种方法不容易修改。
您可能需要查看将LONG转换为CLOB的Dictionary Long Application。然后你可以使用这样的查询:
select *
from table(dla_pkg.query_view('select * from dba_views'))
where upper(text) like '%@MY_LINK%';