通常我使用此查询在存储过程的文本中查找字符串:
SELECT *
FROM ALL_SOURCE a
where UPPER(A.TEXT) like UPPER('%text%')
但似乎不适用于VIEW。
我尝试使用ALL_VIEW
表,但没有带文字的字段(OID_TEXT
)。
是否有查询在View的文字中查找?
答案 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%';