PL / SQL函数中的OUT / IN OUT参数

时间:2014-06-23 10:42:27

标签: sql oracle function stored-procedures plsql

据我所知,只有OUT或IN OUT参数可用于程序,而不是函数。但是,在定义用户定义的聚合函数时,我发现了这个签名:

member FUNCTION ODCIAggregateIterate(self IN OUT DeviationImpl,
value IN NUMBER) RETURN NUMBER

这似乎是一个函数,但它有一个IN OUT参数。有人可以解释一下为什么会这样吗?

由于

1 个答案:

答案 0 :(得分:8)

没有这样的限制。功能可以有OUT或IN OUT参数。

但是,Oracle建议不要使用它们。

OUT和IN OUT参数阻止从纯SQL使用函数,标记为DETERMINISTIC函数或用作结果缓存函数。因此,如果要在SQL查询中使用该函数,这些类型的参数主要是一个问题。

你的例子更具体:它是一个成员函数,而不是一个全局函数。