【问题标题】:Any benefit to including the "return" keyword in a pipelined function?在流水线函数中包含“return”关键字有什么好处?
【发布时间】:2017-03-16 17:01:45
【问题描述】:

包含“return”关键字有什么好处吗?

一些网站在完成所有管道语句后使用“return”关键字展示了 Oracle 中管道函数的示例。

不包括 return 的函数也可以正常工作,例如:

创建或替换 功能返回测试 返回 qt_01_t 流水线是 开始 管道行(qt_01_row_t('管道这个')); 结尾;

VS.

创建或替换 功能返回测试 返回 qt_01_t 流水线是 开始 管道行(qt_01_row_t('管道这个')); 返回; 结尾;

Oracle documentation for pipelined functions

Ask Tom question on pipelined functions

【问题讨论】:

  • IIRC 在 10g 中是强制的,在以后的版本中是可选的。
  • 引用您的第一个链接:“流水线表函数必须具有不返回值的 RETURN 语句。RETURN 语句将控制权转移回消费者并确保下一次提取获得 NO_DATA_FOUND例外。”所以至少在 10g 中,这是强制性的(正如@APC 已经提到的)。

标签: oracle


【解决方案1】:

根据Oracle 11g documentationOracle 12c documentation

流水线表函数必须有一个 RETURN 语句,该语句不 返回一个值。 RETURN 语句将控制权转移回 消费者并确保下一次提取获得 NO_DATA_FOUND 例外。

(此部分与您的链接指向的 10g 文档相同)

因此,尽管解析器可能会接受没有RETURN 语句的流水线函数,但我想您应该始终添加它以确保安全。

【讨论】:

    猜你喜欢
    • 2015-03-26
    • 2013-04-21
    • 2011-04-04
    • 2021-12-30
    • 2011-03-16
    • 2016-10-29
    • 1970-01-01
    • 2020-08-23
    • 2020-05-26
    相关资源
    最近更新 更多