2017-03-16 87 views
1

包含「返回」關鍵字有什麼好處嗎?在流水線函數中包含「return」關鍵字的好處是什麼?

一些網站在完成所有管道語句後,使用「return」關鍵字顯示Oracle中管道化函數的示例。

功能不包括收益將工作得很好,像這樣的:

 
CREATE OR REPLACE 
FUNCTION return_test 
RETURN qt_01_t PIPELINED IS 

BEGIN 

    PIPE ROW(qt_01_row_t('pipe this')); 

END; 

VS.

 
CREATE OR REPLACE 
FUNCTION return_test 
RETURN qt_01_t PIPELINED IS 

BEGIN 

    PIPE ROW(qt_01_row_t('pipe this')); 

    RETURN; 

END; 

Oracle documentation for pipelined functions

Ask Tom question on pipelined functions

+0

IIRC它在10g中是強制性的,在以後的版本中是可選的。 – APC

+0

從您的第一個鏈接引用:「流水線表函數必須具有不返回值的RETURN語句,RETURN語句將控制權轉交給使用者,並確保下一個提取獲取NO_DATA_FOUND異常。所以至少在10g中,這是強制性的(正如@APC已經提到的那樣)。 –

回答

2

按照Oracle 11g documentationOracle 12c documentation

一個流水線表函數必須有一個不 返回值的return語句。 RETURN語句將控制權轉移回 使用者,並確保下一次提取得到NO_DATA_FOUND 異常。

(這部分是相同的10g的文檔,你的鏈接指向)

因此,儘管解析器可能會接受一個管道函數沒有RETURN聲明,我想你應該總是將它添加到爲安全側。

相關問題