ID: 40186
Updated by: sixd@php.net
Reported By: tony at marston-home dot demon dot co dot uk
-Status: Assigned
+Status: Bogus
Bug Type: OCI8 related
Operating System: Windows XP
PHP Version: 5.2CVS-2008-11-11
-Assigned To: tony2001
+Assigned To: sixd
New Comment:
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
I see this bug has a long history and is still of interest. The current
behavior is a limitation with the implementation of the open source OCI8
extension and is expected behavior. With respect, I am marking the bug
as such.
I will be tracking the base issue for future consideration in OCI8 or
PDO_OCI.
I recognize the usefulness of such functionality. Unfortunately there
are no short term plans known to me to update this area of code. All
patches to add such functionality are welcome
Previous Comments:
------------------------------------------------------------------------
[2008-11-10 14:08:36] tony at marston-home dot demon dot co dot uk
I have tried loading that snapshot, but I am still getting the same
error. The call to oci_fetch_array() fails with "ORA-00932: inconsistent
datatypes: expected CHAR got ARRAY"
------------------------------------------------------------------------
[2008-11-10 11:25:52] jani@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
------------------------------------------------------------------------
[2007-01-31 10:37:03] tony at marston-home dot demon dot co dot uk
When I try the following:
$stmt = ociParse($dbconn, "SELECT favourite_food FROM x_person");
oci_bind_array_by_name($stmt, 'favourite_food', $foods, 10, -1,
SQLT_NUM);
oci_execute($stmt);
while(oci_fetch($stmt)) {
print_r($foods);
}
it fails with ORA-01036: illegal variable name/number.
When I try the following:
$stmt = ociParse($dbconn, "SELECT :favourite_food FROM x_person");
oci_bind_array_by_name($stmt, ':favourite_food', $foods, 10, -1,
SQLT_NUM);
oci_execute($stmt);
while(oci_fetch($stmt)) {
print_r($foods);
}
it fails with ORA-01484: arrays can only be bound to PL/SQL statements.
------------------------------------------------------------------------
[2007-01-30 19:38:25] tony2001@php.net
You can and I've already pointed you out how to do it, but you don't
want even to try.
------------------------------------------------------------------------
[2007-01-30 19:21:43] tony at marston-home dot demon dot co dot uk
MySQL's SET datatype and PostgreSQL's ARRAY datatype are identical in
functionality to Oracle's VARRAY datatype in that they can hold arrays
of values instead of single values.
It is not unreasonable of me to expect to be able to write to a
SET/ARRAY/VARRAY column and read that data back again. I can do this
with the TOAD admin tool and Oracle SQL Developer, so why can't I do it
with the OCI8 extension?
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/40186
--
Edit this bug report at http://bugs.php.net/?id=40186&edit=1