| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: stored proc for select statement
In article <H5zW.189$Tf3.5121906_at_news.ipass.net>,
  "David Sisk" <davesisk_at_ipass.net> wrote:
>
> Hi:  Could you elaborate more?  We've tried to do this before (from VB) and
> couldn't make it work.  Please see below.....
>
> Thanks,
> Dave
>
 Hi.
  Following an example ( Oracle 7.3.2.3 ) that works just fine:
PROCEDURE open_mck0000_cr ( from_number IN NUMBER );
       PROCEDURE fetch_mck0000_cr ( rc IN OUT NUMBER,
          mck0000_row IN OUT mck0000%rowtype );
       PROCEDURE close_mck0000_cr;
    END mck0000_ftch;
    /
  3. Create PACKAGE body:
    CREATE OR REPLACE PACKAGE BODY mck0000_ftch AS
     PROCEDURE open_mck0000_cr ( from_number IN NUMBER ) IS
     BEGIN
       OPEN mck0000_cr ( from_number );
     END open_mck0000_cr;
     PROCEDURE fetch_mck0000_cr ( rc IN OUT NUMBER,
       mck0000_row IN OUT mck0000%ROWTYPE ) IS
     BEGIN
       rc := 0;
       FETCH mck0000_CR INTO mck0000_row;
       IF mck0000_cr%NOTFOUND THEN
         rc := 1;
       END IF;
     END fetch_mck0000_cr;
     PROCEDURE close_mck0000_cr IS
     BEGIN
       CLOSE mck0000_cr;
     END close_mck0000_cr;
   END mck0000_ftch;
   /
  4. Execute stored procedures from PL/SQL ( anywhere ):
   set serveroutput on
   DECLARE
     ret_code NUMBER;
     tab_row mck0000%ROWTYPE;
   BEGIN
     mck0000_ftch.open_mck0000_cr(2);
     ret_code := 0;
     mck0000_ftch.fetch_mck0000_cr ( ret_code, tab_row );
     WHILE ( ret_code = 0 ) LOOP
       DBMS_OUTPUT.PUT_LINE ( tab_row.f0001 || ' ' || tab_row.f0002);
       mck0000_ftch.fetch_mck0000_cr ( ret_code, tab_row );
     END LOOP;
     mck0000_ftch.close_mck0000_cr;
Michael Bialik.
-----== Posted via Deja News, The Leader in Internet Discussion ==----- http://www.dejanews.com/ Now offering spam-free web-based newsreading Received on Thu Apr 09 1998 - 15:26:31 CDT
![]()  | 
![]()  |