【问题标题】:Search PL/SQL Code搜索 PL/SQL 代码
【发布时间】:2010-10-12 11:08:48
【问题描述】:

SELECT * from ALL_OBJECTS 返回各种过程/包/表/其他数据库对象的名称。我想在 PL/SQL 代码中查找匹配的字符串。我该怎么做?

类似:(伪代码)SELECT * FROM all_code WHERE line_of_code like '%mytext%'

【问题讨论】:

    标签: oracle search plsql


    【解决方案1】:

    使用类似的东西:

        SELECT * 
          FROM USER_SOURCE 
         WHERE type='PACKAGE' 
           AND NAME='PACKAGE_NAME' 
      ORDER BY type, name, line;
    

    有很多选项,查看 USER_SOURCE 表。

    在所有代码中搜索字符串:

      SELECT *
        FROM ALL_SOURCE
       WHERE UPPER(text) LIKE UPPER('%what I am searching for%')
    ORDER BY type, name, line
    

    请注意,_SOURCE 表中不包含视图代码。查看代码存储在[USER|ALL|DBA]_VIEWS.TEXT,这是一个长列,难以查询。

    【讨论】:

    • 或 ALL_SOURCE WHERE OWNER = [schema]
    • 您可能希望“按类型、名称、行排序”以使结果更清晰。
    • 使其不区分大小写: where upper(text) like upper(%what I am search for%')
    • 我不相信 all_source 会显示其他用户拥有的包体。如果您有访问权限,您可以使用 dba_source 查看这些内容。
    猜你喜欢
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 2010-11-29
    相关资源
    最近更新 更多