That is what I thought.

There is a round about way in DBD Oracle by binding a recordset 'ORA_RSET'

but that is not the same thing again

Unfortunetly Oracle itself does not really support this.  Anytime I have
seen this done is usually some sort of programing trick, such as passing
in a Comma delimited list that is converted by the PSQL into an array.

You can pass an array to another SP from an SP but you have to declare the
array in the SP some people have done it that way.

A direct bind like this in DBD::Oracle is I think not going to work as you
are dealing with SQL going throuh OCI to call the SP.

Basically if you can't do someting in SQLPlus you can't do it in
DBD::Oracle there are some exceptions of course.

cheers
John Scoles


 > I'm not sure this is the same thing.
>
> Both DB2 and Oracle support "array inserts" and "array updates", where
> an insert or update statement is executed with a list of values - i.e.
> it is a more efficient way of executing the same insert/update multiple
> times with a different list of values every time.  AFAIK, that's what
> the bind_param_array() and execute_array() methods are used for.  I am
> not sure whether DBD::DB2 currently supports this feature.
>
> I'm talking about a different feature, where a single parameter to a
> stored procedure, which will be executed a single time, is given a
> variable-sized array of values (i.e. an array datatype).  An example
> would be a stored procedure with a signature like
>
>    CREATE PROCEDURE inArray (IN input IntArray)
>
> I think PostgreSQL supports the same feature, but I may be wrong.
>
> Anyway, that's what I'm looking for, not the bind_param_array() and
> execute_array() methods.
>
> Hildo
>
>
> sco...@pythian.com wrote:
>> DBD::Oracle supports it
>>
>> if you mean this
>>
>> $sth->bind_param_array(1,\...@in_values);
>> $sth->bind_param_inout_array(2,\...@out_values,0,{ora_type =>
>> ORA_VARCHAR2});
>> $sth->execute_array({ArrayTupleStatus=>\...@status});
>>
>> in this case I am binding an array in and also binding an array on the
>> way
>> out and I use the execute_array to do it.
>>
>>
>> No sure if DBD::Oracle will help much is it is useing OCI on the back
>> end.
>>
>> Cheers
>>
>>> Current releases of DB2 support an array datatype, where a list of
>>> values is passed as a single parameter.  The current release of
>>> DBD::DB2
>>> does not support this.
>>>
>>> Does anyone know of DBD drivers for other databases that implement an
>>> array datatype and that I could use as an example?
>>>
>>> Cheers, Hildo
>>>
>>
>>
>
>


Reply via email to