Oracle Function 做遞迴

  • 3429
  • 0

Oracle Function 做遞迴

Dotblogs 的標籤: ,

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

--------
沒什麼特別的~
不過是一些筆記而已