Recursive function Factorial : Function Definition « Stored Procedure Function « Oracle PL / SQL






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> --

   
    
    
  








Related examples in the same category

1.Define and call a function
2.Define and use function in select clause
3.A stored function.
4.Use user-defined function in if statement
5.Recursive function
6.function with no return type
7.A local function
8.Recursive function 2
9.demonstrates the behavior of the DETERMINISTIC keyword.
10.Function to convert celsius to fahrenheit
11.Function to convert fahrenheit to celsius
12.A function is executed like any other SQL built-in function:
13.Count Employee from a function and return value back
14.How stored functions can be called from SQL
15.Raise exception from inner function