Overloaded packages. : Package « PL SQL « Oracle PL / SQL






Overloaded packages.

    
SQL>
SQL> CREATE OR REPLACE PACKAGE Overload AS
  2    FUNCTION TestFunc(p1 IN NUMBER)
  3      RETURN VARCHAR2;
  4    PRAGMA RESTRICT_REFERENCES(TestFunc, WNDS, RNDS, WNPS, RNPS);
  5
  6    FUNCTION TestFunc(pA IN VARCHAR2,pB IN DATE)
  7      RETURN VARCHAR2;
  8    PRAGMA RESTRICT_REFERENCES(TestFunc, WNDS, RNDS, WNPS, RNPS);
  9  END Overload;
 10  /

Package created.

SQL> show errors
No errors.
SQL>
SQL> CREATE OR REPLACE PACKAGE BODY Overload AS
  2    FUNCTION TestFunc(p1 IN NUMBER)
  3      RETURN VARCHAR2 IS
  4    BEGIN
  5      RETURN 'Version 1';
  6    END TestFunc;
  7
  8    FUNCTION TestFunc(pA IN VARCHAR2,pB IN DATE)
  9      RETURN VARCHAR2 IS
 10    BEGIN
 11      RETURN 'Version 2';
 12    END TestFunc;
 13  END Overload;
 14  /

Package body created.

SQL> show errors
No errors.
SQL>
SQL> SELECT Overload.TestFunc(1) FROM dual;

OVERLOAD.TESTFUNC(1)
--------------------------------------------------------------------------------
Version 1

1 row selected.

SQL> SELECT Overload.TestFunc('abc', SYSDATE) FROM dual;

OVERLOAD.TESTFUNC('ABC',SYSDAT
--------------------------------------------------------------------------------
Version 2

1 row selected.

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.Overloading based on user defined object types.
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