G-7440: Never use OUT parameters to return values from a function.

Major

Reusability

Reason

A function should return all its data through the RETURN clause. Having an OUT parameter prohibits usage of a function within SQL statements.

Example (bad)

1
2
3
4
5
6
7
8
create or replace package body my_package is
   function my_function (out_date out date) return boolean is
   begin
      out_date := sysdate;
      return true;
   end my_function;
end my_package;
/

Example (good)

1
2
3
4
5
6
7
create or replace package body my_package is
   function my_function return date is
   begin
      return sysdate;
   end my_function;
end my_package;
/