Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Using bind vars, ref cursors and dynamic SQL

Using bind vars, ref cursors and dynamic SQL

From: Mark <mark.harris.spam.begone_at_ukonline.co.uk.spam.begone>
Date: Wed, 2 Jul 2003 15:01:23 +0100
Message-ID: <3f02e5c1$0$13729$afc38c87@news.easynet.co.uk>


Hello,

I'm trying to return values from my database using ref cursors, dynamic SQL and bind variables, but I cannot seem to get the syntax right.

It looks like this currently:

/*

    rec_services is declared thusly: TYPE rec_services IS REF CURSOR; */

    FUNCTION my_function
    (pv_param1 IN VARCHAR2
    ,pv_param2 IN VARCHAR2
    )
    RETURN rec_services
    IS

        vr_service rec_services;
    BEGIN

        /*
            pv_param1 contains 'LIKE (..., ..., ...)'
        */
        EXECUTE IMMEDIATE

'DECLARE '||
'CURSOR cur_records IS '||
'SELECT ss.col1'||
', ss.col2'||
'FROM my_view ss '||
'WHERE ss.col1 :b1 '||
'AND ss.col2 = :b2 '||
'ORDER BY ss.col1;'||
'BEGIN '||
'OPEN cur_records;'||
'FETCH cur_records '||
'INTO :b3'||
', :b4;'||
'CLOSE cur_records;'||
'END;'
USING IN pv_param1 , IN pv_param2 , OUT vr_service.col1 , OUT vr_service.col2 ; RETURN vr_service;

    END my_function;

The error I am getting is:

PLS-00487: Invalid reference to variable 'VR_SERVICE'

Thanks for any assistance,

Mark Received on Wed Jul 02 2003 - 09:01:23 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US