Definitions

   The factorial of   0   (zero)   is defined as being   1   (unity).
   The   Factorial Function   of a positive integer,    n,    is defined as the product of the sequence:
                 n,   n-1,   n-2,   ...   1 



Task

Write a function to return the factorial of a number.

Solutions can be iterative or recursive.

Support for trapping negative    n    errors is optional.



Related task

   Primorial numbers


 
DECLARE
  /*====================================================================================================
  -- For     :  https://rosettacode.org/
  -- --
  -- Task    : Factorial
  -- Method  : iterative
  -- Language: PL/SQL
  --
  -- 2020-12-30 by alvalongo
  ====================================================================================================*/
  --
  FUNCTION fnuFactorial(inuValue   INTEGER)
  RETURN NUMBER
  IS
    nuFactorial NUMBER;
  BEGIN
    IF inuValue IS NOT NULL THEN
       nuFactorial:=1;
       --
       IF inuValue>=1 THEN
          --
          FOR nuI IN 1..inuValue LOOP
              nuFactorial:=nuFactorial*nuI;
          END LOOP;
          --
       END IF;
       --
    END IF;
    --
    RETURN(nuFactorial);
  END fnuFactorial;
BEGIN
  FOR nuJ IN 0..100 LOOP
      DBMS_OUTPUT.Put_Line('Factorial('||nuJ||')='||fnuFactorial(nuJ));
  END LOOP;
END;
 