Mega Code Archive

 
Categories / Oracle PLSQL / Stored Procedure Function
 

Recursive function 2

SQL> CREATE OR REPLACE FUNCTION Fib(n IN BINARY_INTEGER)   2    RETURN BINARY_INTEGER AS   3  BEGIN   4    RETURN Fib(n - 1) + Fib(n - 2);   5  END Fib;   6  / Function created. SQL> SQL> CREATE OR REPLACE FUNCTION Fib(n IN BINARY_INTEGER)   2    RETURN BINARY_INTEGER AS   3  BEGIN   4    IF n = 0 OR n = 1 THEN   5      RETURN n;   6    ELSE   7      RETURN Fib(n - 1) + Fib(n - 2);   8    END IF;   9  END Fib;  10  / Function created. SQL> SQL> set serveroutput on SQL> SQL> BEGIN   2    FOR v_Count IN 1..10 LOOP   3      DBMS_OUTPUT.PUT_LINE(   4        'Fib(' || v_Count || ') is ' || Fib(v_Count));   5    END LOOP;   6  END;   7  / Fib(1) is 1 Fib(2) is 1 Fib(3) is 2 Fib(4) is 3 Fib(5) is 5 Fib(6) is 8 Fib(7) is 13 Fib(8) is 21 Fib(9) is 34 Fib(10) is 55 PL/SQL procedure successfully completed. SQL> SQL>