Mega Code Archive

 
Categories / Oracle PLSQL / Stored Procedure Function
 

Recursive function Factorial

SQL> SQL> CREATE OR REPLACE FUNCTION Factorial(p_MyNum INTEGER)   2  RETURN NUMBER AS   3  BEGIN -- Start of Factorial Function   4       IF p_MyNum = 1 THEN -- Checking for last value to process of n-1   5            RETURN 1;   6       ELSE   7            RETURN(p_MyNum * Factorial(p_MyNum-1)); -- Recursive   8       END IF;   9  END;  10  / Function created. SQL> SQL> DECLARE   2       v_test NUMBER := 10;   3       v_Counter INTEGER ; -- Counter for For Loop   4  BEGIN   5       FOR v_Counter IN 1..v_test LOOP   6            DBMS_OUTPUT.PUT_LINE('The factorial of ' ||   7                 v_Counter || ' is ' || factorial(v_Counter));   8       END LOOP;   9  END;  10  / The factorial of 1 is 1 The factorial of 2 is 2 The factorial of 3 is 6 The factorial of 4 is 24 The factorial of 5 is 120 The factorial of 6 is 720 The factorial of 7 is 5040 The factorial of 8 is 40320 The factorial of 9 is 362880 The factorial of 10 is 3628800 PL/SQL procedure successfully completed. SQL> SQL> --