据我所知,只有OUT或IN OUT参数可用于程序,而不是函数。但是,在定义用户定义的聚合函数时,我发现了这个签名:
member FUNCTION ODCIAggregateIterate(self IN OUT DeviationImpl,
value IN NUMBER) RETURN NUMBER
这似乎是一个函数,但它有一个IN OUT参数。有人可以解释一下为什么会这样吗?
由于
答案 0 :(得分:8)
没有这样的限制。功能可以有OUT或IN OUT参数。
但是,Oracle建议不要使用它们。
OUT和IN OUT参数阻止从纯SQL使用函数,标记为DETERMINISTIC函数或用作结果缓存函数。因此,如果要在SQL查询中使用该函数,这些类型的参数主要是一个问题。
你的例子更具体:它是一个成员函数,而不是一个全局函数。