2016-11-25 127 views
2

文本通常我使用此查詢查找字符串中的存儲過程的文本:搜索在搜索

SELECT * 
    FROM ALL_SOURCE a 
where UPPER(A.TEXT) like UPPER('%text%') 

但似乎不與視圖中工作。

我嘗試了ALL_VIEW表,但沒有包含文本的字段(都不是OID_TEXT)。

是否有查詢在文本中查找單詞的查詢?

回答

2

all_views文本列的數據類型爲long。您無法直接搜索LONG。 LONGs不能出現在WHERE子句中。它們可以出現在SELECT列表中,但您可以使用它來縮小必須檢查的行數。

Oracle建議至少在過去的2個版本中將LONG轉換爲CLOB。

首先轉換LONG類型列CLOB類型,然後使用類似的條件,例如:

create table tbl_clob as 
select to_lob(long_col) lob_col 
from tbl_long; 

select * 
from tbl_clob 
where lob_col like '%form%'; 
+0

謝謝! 有沒有辦法看到clob「包含」什麼? – pacio14

+0

我在答案中給出瞭解決方案。將列轉換爲clob,然後執行搜索。或者你需要編寫一個PLSQL塊來這樣做。 – XING

+1

是的,抱歉...在結果中我只能看到(HUGECLOB),但點擊字段我找到了所有的代碼。再次感謝你!! – pacio14