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

Reply via email to