2013-02-25 57 views
2

我們的Oracle DBLink正在改變,我需要搜索對舊位置的引用,以便我們可以更新它們以指向新位置。我需要能夠搜索意見,程序,工作,整個九碼。有太多的意見,並一次一個地看每一個。Oracle 10G搜索視圖,作業,文本字符串的過程

使用TOAD或SQL Developer,如何查詢字符串文本的數據庫?我發現了可以讓我搜索對象的查詢,但我需要深入搜索。

TIA

甲骨文10G

+0

你可以保持相同的DB_LINK名稱,只是改變主機指向新的位置?這樣你就不必使用這個引用來改變任何對象。 – 2013-02-25 16:57:47

+0

@rs你能解釋一些關於你的建議的信息嗎?還是它是簡單的? – HPWD 2013-02-25 17:31:14

+0

試着運行這個sql - 'select * from DBA_DB_LINKS;'你會看到'DB_LINK'列是對主機的名稱/引用。如果更新'HOST'列值,則不必更改查詢中使用的'DB_LINK'。 – 2013-02-25 17:38:57

回答

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 

有幾種方式使用多頭。最簡單的方法是使用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%';