ID: 40186 Updated by: [email protected] 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] [email protected] 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] [email protected] 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
