【问题标题】:EXPLAIN PLAN on PL/SQL with Oracle用 Oracle 解释 PL/SQL 计划
【发布时间】:2019-05-09 06:56:37
【问题描述】:

有什么方法可以调试 PL/SQL,或者在 Oracle 数据库中解释它?

我为一个大型组织工作,他们有 PL/SQL 地狱,我如何解开成千上万的 PL/SQL 脚本?

至少我想解析出正在访问的columnstablesviews。 EXPLAIN PLAN 非常适合使用纯 SQL 语句。

其他想法

  1. 购买商业 PL/SQL 解析器
  2. 使用 ANTLR 将 PL/SQL 解析为节点(有点帮助?​​)
  3. 使用 Postgres 解析器接近? https://github.com/lfittl/libpg_query

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    可能不是您正在寻找的完整答案,但您可以从 DBA_DEPENDENCIES 视图开始,至少获取包/过程所依赖的对象。

    例子

    Select distinct
       referenced_name                  "Object name",
       referenced_type                  "Object type",
       referenced_owner                 "Owner",
       nvl(referenced_link_name,'n/a')  "DB Link"
    from dba_dependencies
       where owner          = 'SCHEMA_NAME'
       and name             = 'OBJECT_NAME'
       and type             = 'PACKAGE BODY'
       and referenced_type != 'NON-EXISTENT'
       order by 3,2,1;
    

    【讨论】:

      猜你喜欢
      • 2012-12-16
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 2017-11-05
      • 2013-02-02
      • 2019-08-12
      • 2015-07-16
      相关资源
      最近更新 更多