Mega Code Archive

 
Categories / Oracle PLSQL / PL SQL
 

Overloading based on user defined object types

SQL> CREATE OR REPLACE TYPE myTable1 AS OBJECT (   2     f NUMBER   3   );   4   / Type created. SQL> SQL> SQL> CREATE OR REPLACE TYPE myTable2 AS OBJECT (   2     f NUMBER   3   );   4   / Type created. SQL> SQL> SQL> SQL> CREATE OR REPLACE PACKAGE Overload AS   2     PROCEDURE Proc(p1 IN myTable1);   3     PROCEDURE Proc(p1 IN myTable2);   4   END Overload;   5   / Package created. SQL> SQL> SQL> SQL> show errors No errors. SQL> SQL> SQL> CREATE OR REPLACE PACKAGE BODY Overload AS   2     PROCEDURE Proc(p1 IN myTable1) IS   3     BEGIN   4       DBMS_OUTPUT.PUT_LINE('Proc(myTable1): ' || p1.f);   5     END Proc;   6   7     PROCEDURE Proc(p1 IN myTable2) IS   8     BEGIN   9       DBMS_OUTPUT.PUT_LINE('Proc(myTable2): ' || p1.f);  10     END Proc;  11   END Overload;  12   / Package body created. SQL> SQL> show errors No errors. SQL> SQL> SQL> set serveroutput on SQL> DECLARE   2     v_Obj1 myTable1 := myTable1(1);   3     v_OBj2 myTable2 := myTable2(2);   4   BEGIN   5     Overload.Proc(v_Obj1);   6     Overload.proc(v_Obj2);   7   END;   8   / Proc(myTable1): 1 Proc(myTable2): 2 PL/SQL procedure successfully completed. SQL> SQL> SQL> SQL> drop type myTable1 force; Type dropped. SQL> SQL> drop type myTable2 force; Type dropped. SQL> SQL> SQL> SQL> SQL>