Overloading based on user defined object types. : Package « PL SQL « Oracle 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>

   
    
    
    
  








Related examples in the same category

1.Create a package declaration and create its body after
2.Create a package level variable
3.call utitilities package
4.Package for output employee table and log message
5.Package with package level cursor variable
6.Overloading Packaged Subprograms
7.A PL/SQL package with two methods
8.Package level Exception
9.This package will not compile because the body does not match the specification.
10.dependencies between an anonymous calling block and package runtime state.
11.RESTRICT_REFERENCES pragma.
12.Without RESTRICT_REFERENCES pragma.
13.Persistance of packaged variables.
14.A package with one method
15.Package level variable as global level variable
16.Global definition
17.Student fetch package
18.Cursor operation between package functions
19.The pragma is not valid at the package level.
20.Create package and member cursor
21.Nested package reference
22.Overloaded packages.
23.package RECURSION
24.Crosss reference between two packages
25.Counter package
26.Package initialization.
27.Packages allows forward references, thus opening the possibilities for recursion.
28.Use package level type as global variables
29.Use package member variable to pass value