SQL> CREATE OR REPLACE TYPE myTable1 AS OBJECT (
2 f NUMBER
3 );
4 /
Type created.
SQL>
SQL> CREATE OR REPLACE TYPE myTable2 AS OBJECT (
2 f NUMBER
3 );
4 /
Type created.
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> show errors
No errors.
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> 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> drop type myTable1 force;
Type dropped.
SQL>
SQL> drop type myTable2 force;
Type dropped.
SQL>