【问题标题】:OUT/IN OUT parameters in PL/SQL functionPL/SQL 函数中的 OUT/IN OUT 参数
【发布时间】:2014-08-13 08:58:08
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: sql oracle function stored-procedures plsql


    【解决方案1】:

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

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

    OUT 和 IN OUT 参数防止函数从普通 SQL 中使用、标记为 DETERMINISTIC 函数或用作结果缓存函数。所以如果你想在 SQL 查询中使用该函数,这些类型的参数主要是一个问题。

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

    【讨论】:

    • 好吧,我对此感到困惑,因为通常定义是过程可以返回 0..* 值(通过这些 OUT 参数),而函数只能通过 RETURN 返回 1 个值,但后来我看到我发布的例子。无论如何,谢谢你的回答!
    猜你喜欢
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2011-10-12
    相关资源
    最近更新 更多