Connecting Tech Pros Worldwide Forums | Help | Site Map

PL/SQL-PACKAGE - 3

debasisdas's Avatar
Moderator
 
Join Date: Dec 2006
Location: Bangalore ,India
Posts: 7,508
#1   Jun 8 '07
USE OF REF-CURSOR IN THE PACKAGE
================================
PACKAGE
-----------------
Expand|Select|Wrap|Line Numbers
  1. create or replace package pack1
  2. as
  3. type mycur is ref cursor;
  4. end;
Note :--since the package does not contain any procedure or functions it not required to create the package body.
----------------------------
USING THE (GLOBAL) REFCURSOR IN A PROCEDURE
---------------------------------------------------------------------
Expand|Select|Wrap|Line Numbers
  1. create or replace procedure testproc
  2. (
  3. no emp.deptno%type,
  4. rec out pack1.mycur
  5. )
  6. is
  7. begin
  8. open rec for select * from emp where deptno=no;
  9. end ;
--------------------------------
CALLING THE PROCEDURE FROM ANNONYMOUS BLOCK
==============================================
Expand|Select|Wrap|Line Numbers
  1. declare
  2. mm pack1.mycur;
  3. ll emp%rowtype;
  4. begin
  5. testproc(10,mm);
  6. loop
  7. fetch mm into ll ;
  8. exit when mm%notfound;
  9. DBMS_OUTPUT.PUT_LINE(ll.empno||' ' ||ll.ename);
  10. end loop;
  11. end;
FUNCTION OVERLOADING IN PACKAGE.
=================================
package
----------------
Expand|Select|Wrap|Line Numbers
  1. CREATE OR REPLACE PACKAGE PKG_OVRLD
  2. AS
  3. FUNCTION TRANS_DATE(DT IN DATE)RETURN  NUMBER;
  4. FUNCTION TRANS_DATE(DT IN NUMBER)RETURN DATE;
  5. END PKG_OVRLD;
package body
------------------------
Expand|Select|Wrap|Line Numbers
  1. CREATE OR REPLACE PACKAGE BODY PKG_OVRLD AS
  2.  
  3. FUNCTION TRANS_DATE(DT IN DATE)RETURN  NUMBER IS
  4. BEGIN
  5. RETURN ROUND((DT-TO_DATE('01011970','MMDDYYYY'))*86400);
  6. END TRANS_DATE;
  7.  
  8. FUNCTION TRANS_DATE(DT IN NUMBER)RETURN DATE IS
  9. BEGIN
  10. RETURN (TO_DATE('01011970','MMDDYYYY') +(DT/(86400)));
  11. END TRANS_DATE;
  12.  
  13. END PKG_OVRLD;
  14.  

Also check PACKAGE - 4

Last edited by debasisdas; Feb 12 '08 at 10:36 AM. Reason: Some addition of code



Reply