> On Mon, Nov 12, 2001 at 06:50:14PM +0100, Benoit Rey wrote:
> > I have a stored procedure wich has an array of values as entry parameter.
> > 
> > Is it possible with DBI to bind an array  "@tab" ?
> > 
> > 
> > For example :
> > 
> > $sti=$dbi->prepare("BEGIN ".$PackageNameOracle.".myProcedure (:1,:2,:3);
> > END;");
> > 
> > $sti->bind_param(1, $var1);
> > $sti->bind_param(2, @tab);      ???
> > $sti->bind_param_inout(3, \$var2, 4);
> > 
> > $sti->execute;
> > 
> > If it's possible how to do it?
> 
> It is not possible.  You have to bind each placeholder's value separately.
> 
> You could do something like this, to avoid repeated code:
> 
> $p = 0;
> $sti->bind_param(++$p, $var1);
> foreach (@tab) {
>   $sti->bind_param(++$p, $_);
> }
> 
> Of course, you'll have to make sure @tab holds the correct number of
> values.
> 
> 
> Ronald

I'm not certain that addresses Mssr. Rey's issue. He only has 3 params,
the 2nd of which is an array. However, I'm afraid the response to his inquiry
remains the same: at present this is not possible.

Since I've recently seen this issue popping up here again, as well as having been
directly contacted by a few folks, I'll drag this dead horse out again:

Are we any closer to array binding support ? Is there anything else I can
do (aside from my DBD::ODBC hacks, and occasional lobbying) to
move this issue forward ? I wish I had resources to sponsor the activity,
but alas I'm bootstrapping my own efforts right now.

Would it be considered a gross violation of net ettiquette for me to repackage
my DBD::ODBC hack as, say, DBD::ODBCAry, and post it to CPAN ?
I'd rather not generate a fork unneccesarily, but it is approaching a year
since I first reported my results, and it would be a one-shot posting
(other than serious bug fixes), to be obsoleted once DBD::ODBC
provides this capability.
While I can't assure Benoit that my hack will address his particular
issue, it should address more general application issues I've seen
raised here over the past few months (for those using DBD::ODBC,
of course).

Regards,
Dean Arnold

Reply via email to