【问题标题】:Search text in View在视图中搜索文本
【发布时间】:2017-04-09 14:41:15
【问题描述】:

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

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

但它似乎不适用于 VIEW。

我尝试使用 ALL_VIEW 表,但没有包含文本的字段(OID_TEXT 也没有)。

是否有在 View 的文本中查找单词的查询?

【问题讨论】:

    标签: view plsql toad


    【解决方案1】:

    在表 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%';
    

    【讨论】:

    • 谢谢!有没有办法查看 clob “包含”什么?
    • 我在回答中给出了解决方案。将列转换为 clob,然后进行搜索。或者您需要编写一个 PLSQL 块来执行此操作。
    • 是的,对不起...在结果中我只能看到 (HUGECLOB) 但单击该字段我找到了所有代码。再次感谢您!
    猜你喜欢
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2021-05-29
    • 2015-01-31
    • 2016-08-12
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多