> 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