I used the following program to learn bind variables and ref cursor
long time ago. This might help. Put this code into a file called
getstaff.sql and then run it. Bottom lines show how to declare a cursor
and pass it to a procedure using SQL.
HTH
Mohammed Shakir
------------------
rem filename getstaff.sql
rem uses employee table(emp ??) from scott/tiger schema on oracle
rem you can use bind variables, then cursor can not have the return
type??.
rem You can return the ref cursor, see the multir~2.sql
rem This program works
rem USAGE: sqlplus scott/tiger @getstaff.sql
rem Originally this was multir~1.sql
drop package emp_data;
CREATE PACKAGE emp_data AS
TYPE EmpRecTyp IS RECORD (
emp_id NUMBER(4),
emp_name CHAR(10),
job_title CHAR(9),
dept_name CHAR(14),
dept_loc CHAR(13));
TYPE EmpCurTyp IS REF CURSOR RETURN EmpRecTyp;
PROCEDURE get_staff (
dept_no IN NUMBER,
emp_cv IN OUT EmpCurTyp);
END;
/
CREATE PACKAGE BODY emp_data AS
PROCEDURE get_staff (
dept_no IN NUMBER,
emp_cv IN OUT EmpCurTyp) IS
BEGIN
OPEN emp_cv FOR
SELECT empno, ename, job, dname, loc FROM emp, dept
WHERE emp.deptno = dept_no AND emp.deptno = dept.deptno
ORDER BY empno;
END;
END;
/
COLUMN EMPNO HEADING Number
COLUMN ENAME HEADING Name
COLUMN JOB HEADING JobTitle
COLUMN DNAME HEADING Department
COLUMN LOC HEADING Location
SET AUTOPRINT ON
VARIABLE cv REFCURSOR
EXECUTE emp_data.get_staff(20, :cv);
--- Igor Neyman <[EMAIL PROTECTED]> wrote:
> Oops.
>
>
>
> It's supposed to be:
>
>
>
> Variable lCursor REFCURSOR;
>
>
>
> Not: "declare lCursor REFCURSOR;"
>
>
>
> Igor Neyman, OCP DBA
>
> [EMAIL PROTECTED]
>
>
>
>
>
> -----Original Message-----
> Neyman
> Sent: Wednesday, June 04, 2003 9:40 AM
> To: Multiple recipients of list ORACLE-L
>
>
>
> If in SQL*Plus:
>
>
>
> Just declare variable of REFCURSOR type and pass it to stored
> procedure:
>
>
>
> DECLARE lCursor REFCURSOR;
>
> Begin
>
> <procedure_name>(par1, par2, ., :lCursor);
>
> end;
>
> /
>
>
>
> Igor Neyman, OCP DBA
>
> [EMAIL PROTECTED]
>
>
>
>
>
> -----Original Message-----
> Hatzistavrou John
> Sent: Wednesday, June 04, 2003 8:40 AM
> To: Multiple recipients of list ORACLE-L
>
>
>
> Dear All,
>
> I have a vendor procedure which I wish to run . This procedure takes
> as
> input variables a varchar and a ref_cursor.
>
> I know the query that is related to the ref_cursor and I wish to
> implicitly pass it to the procedure . How can this be done?
>
> Kind Regards,
>
>
>
> Hatzistavrou Yannis
>
>
=====
Mohammed Shakir
CompuSoft, Inc.
11 Heather Way
East Brunswick, NJ 08816-2825
(732) 672-0464 (Cell)
(732) 257-6001 (Home)
__________________________________
Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).
http://calendar.yahoo.com
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: Mohammed Shakir
INET: [EMAIL PROTECTED]
Fat City Network Services -- 858-538-5051 http://www.fatcity.com
San Diego, California -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).