在视图中搜索文本

时间:2016-11-25 08:48:24

标签: view plsql toad

通常我使用此查询在存储过程的文本中查找字符串:

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

但似乎不适用于VIEW。

我尝试使用ALL_VIEW表,但没有带文字的字段(OID_TEXT)。

是否有查询在View的文字中查找?

1 个答案:

答案 0 :(得分:2)

在表all_views中,text列的数据类型为long。你无法直接搜索LONG。 LONG不能出现在WHERE子句中。它们可以出现在SELECT列表中,因此您可以使用它来缩小您必须检查的行数。

Oracle建议至少在过去的两个版本中将LONG转换为CLOB。

首先将LONG类型列转换为CLOB类型,然后使用like条件,例如:

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

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