2016-11-25 144 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