Oracle Function 做遞迴
Oracle Function 中可以做遞迴查詢,寫個 Sample 筆記一下:
CREATE OR REPLACE FUNCTION FN_RECURSIVE_TEST(COUNTLIMIT NUMBER,
INITNUMBER NUMBER DEFAULT 0)
RETURN NUMBER IS
RESULT NUMBER;
BEGIN
RESULT := INITNUMBER;
IF COUNTLIMIT > 2011 THEN
RESULT := FN_RECURSIVE_TEST(COUNTLIMIT - 1, INITNUMBER + 1);
END IF;
RETURN(RESULT);
END FN_RECURSIVE_TEST;
測試SQL:
SELECT FN_RECURSIVE_TEST(2200) FROM DUAL;
--189
SELECT FN_RECURSIVE_TEST(2200, 15) FROM DUAL;
--204
--------
沒什麼特別的~
不過是一些筆記而已