使用Oracle在PL / SQL上解释计划

时间:2019-05-08 22:23:15

标签: sql oracle plsql

是否可以在Oracle数据库中调试PL / SQL或对其进行解释?

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

至少我想解析出正在访问的columnstablesviews。 EXPLAIN PLAN通过纯SQL语句可以很好地解决此问题。

其他想法

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

1 个答案:

答案 0 :(得分:2)

可能不是您要找的完整答案,但是您可以从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;