如何获取PL SQL文件中的函数名列表?

时间:2018-01-22 06:02:30

标签: java oracle plsql

我正在尝试编写一个程序,它将打印PL / SQL文件中所有函数名列表以及每个函数的后续函数调用。

例如 -

FUNCTION Fn_ABC (field_status    IN     VARCHAR)
  BEGIN
     Dbg('In Fn_ABC ');
     IF NOT  Fn_xyz(field_status)  THEN
     Dbg('Failed in Fn_ABC');
        field_status      := 'T';
        RETURN FALSE;
     END IF;
END Fn_ABC;

在上述文件上运行所需代码的输出应为:

Fn_ABC
    Fn_xyz

深度优先遍历每个函数似乎是合乎逻辑的选择,但我对如何运行它以获取每个函数名称感到困惑。

1 个答案:

答案 0 :(得分:1)

无需遍历.sql文件。在数据库中创建函数后,只需运行此查询即可获得函数所依赖的所有函数。

SELECT NAME, REFERENCED_NAME
  FROM ALL_DEPENDENCIES
 WHERE NAME = 'FN_ABC' AND TYPE = 'FUNCTION' AND REFERENCED_TYPE = 'FUNCTION';