Function Procedure Packages Oracle PLSQL Tutorial

Datatype families are groups of similar datatypes.
For example, CHAR and VARCHAR2 are used to describe exactly the same kind of textual data, so they belong to the same family.
You can overload only between different families.
The following code is an example of declaring a different datatype family:

SQL> declare
  2    function getArea(i_rad NUMBER, i_prec NUMBER) return NUMBER is
  3        v_pi NUMBER:=3.14;
  4    begin
  5       return trunc(v_pi * (i_rad ** 2),i_prec);
  6    end;
  7    function getArea(i_rad NUMBER, i_ignore_yn VARCHAR2) return NUMBER is
  8        v_pi NUMBER:=3.14;
  9    begin
 10       if i_ignore_yn='Y' and i_rad < 5 then
 11         return 0;
 12       else
 13         return v_pi * (i_rad ** 2);
 14       end if;
 15    end;
 16  begin
 17    DBMS_OUTPUT.put_line('Area (R=3):'||getArea(3,1));
 18    DBMS_OUTPUT.put_line('Area (R=3):'||getArea(3,'N'));
 19  end;
 20  /
Area (R=3):28.2
Area (R=3):28.26
PL/SQL procedure successfully completed.