Hi,

 

 I am calling a stored procedure that returns ref cursor from perl. But
it fails with the following error,

 

DBD::Oracle::st execute failed:  ( DBD ERROR: LOB refetch attempted for
unsupported statement type )

 

I searched for this error, and all the results show how to read a CLOB
return type but not a ref cursor. Any help is much appreciated.

Here's my perl code,

 

sub run_proc{

...

...

...

    $sth->bind_param_inout(":p1", \$args->[0],length($args->[0]), {
ora_type => ORA_CLOB});

    $sth->bind_param_inout(":p2", \$args->[1],length($args->[1]));

    $sth->bind_param_inout(":p3", \$args->[2],1);

    $sth->bind_param_inout(":p4", \$res,0,{ ora_type => ORA_RSET});

    $sth->execute();

                        ....

}

 

And the stored procedure looks like,

 

PROCEDURE p_search_eol_data(

        pid_string IN CLOB,

        where_clause IN VARCHAR2,

        role_flag IN NUMBER,

        results OUT searchCursor)

    IS

        queryString LONG;

    BEGIN

            queryString := '';/* dynamic query */

      open results for queryString;

     END;

 

 

 

Thanks,

Shobha Deepthi V

 

Reply via email to