ID: 47081 User updated by: lan dot zhou at emagineinternational dot com Reported By: lan dot zhou at emagineinternational dot com -Status: Feedback +Status: Open Bug Type: OCI8 related Operating System: windows PHP Version: 5.2.8 New Comment:
CREATE OR REPLACE TYPE PERSON_TYPE AS OBJECT ( ID NUMBER(10), NAME VARCHAR2(50), AGE NUMBER, CONSTRUCTOR FUNCTION PERSON_TYPE RETURN SELF AS RESULT); CREATE OR REPLACE TYPE BODY PERSON_TYPE AS CONSTRUCTOR FUNCTION PERSON_TYPE RETURN SELF AS RESULT AS BEGIN RETURN; END; END; CREATE OR REPLACE TYPE ARRAY_PERSON_TYPE IS TABLE OF PERSON_TYPE; Previous Comments: ------------------------------------------------------------------------ [2009-01-13 20:07:07] s...@php.net Can you upload the SQL script to create the type and procedure? ------------------------------------------------------------------------ [2009-01-12 23:26:40] lan dot zhou at emagineinternational dot com Description: ------------ I have a procedure which returns an object array. When I call this procedure from PHP, and bind an OCI-Collection type object to that output parameter, the PHP object contains the right number of the elements after executing the procedure, but all the elements are NULL. Reproduce code: --------------- $nty = oci_new_collection($db, 'objectArray'); $stmt = oci_parse($db, 'BEGIN getObjectArray(output); END;'); oci_bind_by_name($stmt, 'output', $nty, -1, OCI_B_NTY); oci_execute($stmt, OCI_DEFAULT); for ($i = 0, $len = $nty->size(); $i < $len; $i++) { var_dump($nty->getElem($i)); } $nty->free(); oci_commit($this->_db); Expected result: ---------------- the content of the objects in the object array which is returned from the procedure ( the return array is not null when I executed the procedure in sql developer) Actual result: -------------- NULL ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=47081&edit=1