检查oracle函数是否存在

时间:2011-09-09 05:53:32

标签: .net sql oracle

我有一个Oracle架构,我有一些函数和一些包含函数的包。

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

我试图从

开始
SELECT * FROM ALL_OBJECTS 
WHERE OBJECT_TYPE IN ('FUNCTION','PROCEDURE','PACKAGE','PACKAGE_BODY')

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

1 个答案:

答案 0 :(得分:7)

使用视图ALL_PROCEDURES

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

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