#47081 [Opn]: OCI-Collection returns null for object array

2009-01-19 Thread lan dot zhou at emagineinternational dot com
 ID:   47081
 User updated by:  lan dot zhou at emagineinternational dot com
 Reported By:  lan dot zhou at emagineinternational dot com
 Status:   Open
 Bug Type: OCI8 related
 Operating System: windows
 PHP Version:  5.2.8
 New Comment:

any feedback on this issue?

thanks


Previous Comments:


[2009-01-14 05:18:51] lan dot zhou at emagineinternational dot com

CREATE OR REPLACE PROCEDURE GET_PERSON (PARRAY OUT ARRAY_PERSON_TYPE)
AS
 ARRPERSON ARRAY_PERSON_TYPE := ARRAY_PERSON_TYPE();

 FUNCTION CREATEPERSON (ID NUMBER, NAME VARCHAR2, AGE NUMBER) 
  RETURN PERSON_TYPE IS
PERSON PERSON_TYPE := PERSON_TYPE();
 BEGIN
PERSON.ID := ID;
PERSON.NAME := NAME;
PERSON.AGE := AGE;
RETURN PERSON;
 EXCEPTION WHEN OTHERS THEN
  NULL;
 END;

BEGIN
 ARRPERSON.DELETE;
 ARRPERSON.EXTEND(2);
 ARRPERSON(1) := CREATEPERSON(1, 'LAN', 27);
 ARRPERSON(2) := CREATEPERSON(2, 'ZHOU', 72);
 PARRAY := ARRPERSON;
EXCEPTION WHEN OTHERS THEN
END;



[2009-01-14 05:16:12] lan dot zhou at emagineinternational dot com

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;



[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



#47081 [Opn]: OCI-Collection returns null for object array

2009-01-13 Thread lan dot zhou at emagineinternational dot com
 ID:   47081
 User updated by:  lan dot zhou at emagineinternational dot com
 Reported By:  lan dot zhou at emagineinternational dot com
 Status:   Open
 Bug Type: OCI8 related
 Operating System: windows
 PHP Version:  5.2.8
 New Comment:

CREATE OR REPLACE PROCEDURE GET_PERSON (PARRAY OUT ARRAY_PERSON_TYPE)
AS
 ARRPERSON ARRAY_PERSON_TYPE := ARRAY_PERSON_TYPE();

 FUNCTION CREATEPERSON (ID NUMBER, NAME VARCHAR2, AGE NUMBER) 
  RETURN PERSON_TYPE IS
PERSON PERSON_TYPE := PERSON_TYPE();
 BEGIN
PERSON.ID := ID;
PERSON.NAME := NAME;
PERSON.AGE := AGE;
RETURN PERSON;
 EXCEPTION WHEN OTHERS THEN
  NULL;
 END;

BEGIN
 ARRPERSON.DELETE;
 ARRPERSON.EXTEND(2);
 ARRPERSON(1) := CREATEPERSON(1, 'LAN', 27);
 ARRPERSON(2) := CREATEPERSON(2, 'ZHOU', 72);
 PARRAY := ARRPERSON;
EXCEPTION WHEN OTHERS THEN
END;


Previous Comments:


[2009-01-14 05:16:12] lan dot zhou at emagineinternational dot com

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;



[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



#47081 [Fbk->Opn]: OCI-Collection returns null for object array

2009-01-13 Thread lan dot zhou at emagineinternational dot com
 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



#47081 [NEW]: OCI-Collection returns null for object array

2009-01-12 Thread lan dot zhou at emagineinternational dot com
From: lan dot zhou at emagineinternational dot com
Operating system: windows
PHP version:  5.2.8
PHP Bug Type: OCI8 related
Bug description:  OCI-Collection returns null for object array

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 bug report at http://bugs.php.net/?id=47081&edit=1
-- 
Try a CVS snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=47081&r=trysnapshot52
Try a CVS snapshot (PHP 5.3):
http://bugs.php.net/fix.php?id=47081&r=trysnapshot53
Try a CVS snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=47081&r=trysnapshot60
Fixed in CVS:
http://bugs.php.net/fix.php?id=47081&r=fixedcvs
Fixed in CVS and need be documented: 
http://bugs.php.net/fix.php?id=47081&r=needdocs
Fixed in release:
http://bugs.php.net/fix.php?id=47081&r=alreadyfixed
Need backtrace:  
http://bugs.php.net/fix.php?id=47081&r=needtrace
Need Reproduce Script:   
http://bugs.php.net/fix.php?id=47081&r=needscript
Try newer version:   
http://bugs.php.net/fix.php?id=47081&r=oldversion
Not developer issue: 
http://bugs.php.net/fix.php?id=47081&r=support
Expected behavior:   
http://bugs.php.net/fix.php?id=47081&r=notwrong
Not enough info: 
http://bugs.php.net/fix.php?id=47081&r=notenoughinfo
Submitted twice: 
http://bugs.php.net/fix.php?id=47081&r=submittedtwice
register_globals:
http://bugs.php.net/fix.php?id=47081&r=globals
PHP 4 support discontinued:  http://bugs.php.net/fix.php?id=47081&r=php4
Daylight Savings:http://bugs.php.net/fix.php?id=47081&r=dst
IIS Stability:   
http://bugs.php.net/fix.php?id=47081&r=isapi
Install GNU Sed: 
http://bugs.php.net/fix.php?id=47081&r=gnused
Floating point limitations:  
http://bugs.php.net/fix.php?id=47081&r=float
No Zend Extensions:  
http://bugs.php.net/fix.php?id=47081&r=nozend
MySQL Configuration Error:   
http://bugs.php.net/fix.php?id=47081&r=mysqlcfg