Functions


We can also write functions instead of procedures. In a function declaration, we follow the parameter list by RETURN and the type of the return value:
   CREATE FUNCTION  <func_name>(<param_list>)
      RETURN  <return_type> AS ...
In the body of the function definition, “RETURN <expression>;” exits from the function and returns the value of <expression>.

Question: Write a function in PL/SQL to add up the integers from 1 to n, for any integer n.

 SQL> CREATE FUNCTION  sum_n( n INTEGER )  RETURN INTEGER AS
   2    i      INTEGER;
   3    total  INTEGER := 0;
   4  BEGIN
   5    FOR  i  IN  1..n  LOOP
   6      total := total + i;
   7    END LOOP;
   8    RETURN  total;
   9  END;
  10  /
 Function created.

 SQL> SELECT  sum_n( 10 )  FROM  dual;

  SUM_N( 10 )
 ----------
         55

 SQL> VARIABLE  X  NUMBER;

 SQL> BEGIN  :x := sum_n( 10 );  END;
   2  /

 PL/SQL procedure successfully completed.

 SQL> PRINT  :x;

          X
 ----------
         55