检查oracle函数是否存在

mae*_*sto 5 .net sql oracle

我有一个Oracle模式,我有一些函数和一些包含函数的包.

如何测试字符串值是否是我的模式中的函数名称,如果是,则返回函数结果,或者它是否不是返回字符串值的函数?

我试着从头开始

SELECT * FROM ALL_OBJECTS 
WHERE OBJECT_TYPE IN ('FUNCTION','PROCEDURE','PACKAGE','PACKAGE_BODY')
Run Code Online (Sandbox Code Playgroud)

但这不会从包内返回函数名称.谢谢!

APC*_*APC 7

使用视图ALL_PROCEDURES.

OBJECT_NAME列将显示独立函数和过程的名称以及包名称.PROCEDURE_NAME列将显示包中的函数和过程的名称.

由于您只对函数感兴趣,因此最好使用ALL_ARGUMENTS.此视图记录过程或函数使用的参数.如果给定的程序单元的POSITION值为零,则表示函数的返回值.