在流水线函数中包含“return”关键字有啥好处?

Posted

技术标签:

【中文标题】在流水线函数中包含“return”关键字有啥好处?【英文标题】: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 已经提到的)。 【参考方案1】:

根据Oracle 11g documentation和Oracle 12c documentation:

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

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

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

【讨论】:

以上是关于在流水线函数中包含“return”关键字有啥好处?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 在函数中包含/要求

我的逻辑有啥问题?尝试计算文件中包含特定字符的单词数量

使用不返回任何内容的 return 语句有啥好处吗?

我发现在 discord.js 机器人中包含图像的代码有啥问题?

关键字列表有啥好处?

求高手帮助,如何将EXCEL中包含某一关键词的所有行都提取出来,单独显示?