通常我使用此查询在存储过程的文本中查找字符串:
SELECT *
FROM ALL_SOURCE a
where UPPER(A.TEXT) like UPPER('%text%')
但它似乎不适用于 VIEW。
我尝试使用 ALL_VIEW
表,但没有包含文本的字段(OID_TEXT
也没有)。
是否存在在 View 文本中查找单词的查询?
最佳答案
在表all_views
中,文本列的数据类型为long
。您不能直接搜索 LONG。 LONG 不能出现在 WHERE 子句中。不过,它们可以出现在 SELECT
列表中,因此您可以使用它来缩小必须检查的行数。
Oracle 建议至少在过去的 2 个版本中将 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%';
关于view - 在 View 中搜索文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40800876/