DBD::Proxy doesn't know that bind_param_inout might set a value
to something that needs to be 'proxied'. (I'm not even sure that
bind_param_inout works properly with DBD::Proxy.)
Patches welcome.
Tim.
On Mon, Apr 22, 2002 at 01:57:53PM -0500, Gajjala, Bhushan wrote:
> I am having a problem retrieving a ResultSet from an Oracle stored
> function. The function is called from a script that connects to an
> Oracle DB via the DBD::Proxy driver. Here's my sample code:
>
> my $sth1 = $DB->prepare(q{BEGIN
> ? := f_get_a_cursor(); # returns a ResultSet
> END;});
> my $sth2;
> $sth1->bind_param_inout(1, \$sth2,0, {ora_type => ORA_RSET});
> $sth1->execute();
> my @output = $sth2->fetchrow();
>
> When I connect via the DBD::Proxy driver to the DB and run the
> script, I
> get this error:
> Can't locate object method "fetchrow" via package
> "DBI::ProxyServer::st"
>
> When I DON'T use the DBD::Proxy and connect straight to the DB using
> the
> Oracle driver, the "fetchrow" works. Does anyone have any idea why
> that
> is? Seems like the return type of the object when returned via the
> Proxy driver is "DBI::ProxyServer::st", while without the Proxy it
> is
> just "DBI::st". Do I need to dereference the return value of the
> DBI::ProxyServer handle to get the underlying DBI functionality? Or
> is
> this a bug with the driver?
>
> Any help would be appreciated.
> Thanks,
> Bhushan
>