pipilened PL / SQL函数的优点和缺点也比没有pileile的函数和返回类型"表" (记录集)。如果可能,请举例说明情况?
答案 0 :(得分:0)
我想通过流水线功能,您的功能可以创建无限/无限的结果集。例如,函数可以返回自然数或Fibonacci序列。在查询中使用它时,您可以添加where rownum < 100
以将输出限制为您实际需要的长度。
另一个实际上更重要的区别是,如果您不使用PIPELINED
表函数,则必须在使用之前计算完整的结果集。
如果计算结果缓慢/昂贵,这可能非常重要。
通常,用户只想查看前N行(这就是FIRST_ROWS
优化器模式存在的原因)。
换句话说,只有PIPELINED
表函数支持FIRST_ROWS
,因为结果仅在需要时计算。
将此与在互联网上查找内容进行比较:大多数情况下,您会在结果集的第一页上找到有趣的链接,而您对随后的数百万次点击不感兴趣。