ID: 26892
User updated by: tomy at envox dot hr
Reported By: tomy at envox dot hr
Status: Open
Bug Type: OCI8 related
Operating System: Suse 8.2
PHP Version: 4CVS-2004-01-13 (stable)
New Comment:
The error seems to be in configure script....
It says after checking for OCICollAssign:
"
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
cat >> confdefs.h <<\EOF
#define HAVE_OCI8_COLLECTIONS 1
EOF
"
And after examining temporary confdefs.h i have in it:
"
#define HAVE_OCI8_ATTR_STATEMENT 1
#define HAVE_OCI_9_2 1
#define HAVE_OCI8_TEMP_LOB 1
#define HAVE_OCI8_COLLECTIONS 1
#define HAVE_OCI8 1
"
The problem is obvious, in configure you define HAVE_OCI8_COLLECTIONS
and in oci8.c you use PHP_OCI8_HAVE_COLLECTIONS (actually in oci8.c you
use
PHP_OCI8_HAVE_COLLECTIONS in several places and HAVE_OCI8_COLLECTIONS i
one place).
HAVE_OCI8_COLLECTIONS is used in all other files
except oci8.c (configure, config.m4, one .h.in file, etc...)
I do not know how you compiled and tested with this configure and this
oci8.c since defines are obviously different.
After changing all PHP_OCI8_HAVE_COLLECTIONS to HAVE_OCI8_COLLECTIONS
in oci8.c I compiled succesfully and
phpinfo() says:
"
oci8
OCI8 Support enabled
Revision $Revision: 1.232 $
Active Persistent Links 0
Active Links 0
Oracle Version 9.2
Compile-time ORACLE_HOME /opt/oracle/product/9ir2
Libraries Used no value
Temporary Lob support enabled
Collections support enabled
"
However, the original bug described in original bug report
remains!!!!!!!!!!!!!!!!!!!
Previous Comments:
------------------------------------------------------------------------
[2004-01-14 07:46:41] tomy at envox dot hr
config.log says:
"
...
configure:54726: checking for ncurses support
configure:55705: checking for Oracle-OCI8 support
configure:55750: checking Oracle Install-Dir
configure:56045: checking Oracle version
configure:56697: checking for OCIEnvNlsCreate in -lclntsh
configure:56716: gcc -o conftest -g -O2
-Wl,-rpath,/opt/oracle/product/9ir2/lib -L/opt/oracle/product/9ir2/lib
-Wl,-rpath,/opt/oracle/product/9ir2/lib -L/opt/oracle/product/9ir2/lib
conftest.c -lclntsh -lmysqlclient -lmcrypt -lltdl -lpng -lz -lz
-lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lxml2 -lz -lm -ldl -lm -lnsl
-lclntsh 1>&5
configure:56816: checking for OCINlsCharSetNameToId in -lclntsh
configure:56835: gcc -o conftest -g -O2
-Wl,-rpath,/opt/oracle/product/9ir2/lib -L/opt/oracle/product/9ir2/lib
-Wl,-rpath,/opt/oracle/product/9ir2/lib -L/opt/oracle/product/9ir2/lib
conftest.c -lclntsh -lmysqlclient -lmcrypt -lltdl -lpng -lz -lz
-lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lxml2 -lz -lm -ldl -lm -lnsl
-lclntsh 1>&5
configure:56971: checking for OCILobIsTemporary in -lclntsh
configure:56990: gcc -o conftest -g -O2
-Wl,-rpath,/opt/oracle/product/9ir2/lib -L/opt/oracle/product/9ir2/lib
-Wl,-rpath,/opt/oracle/product/9ir2/lib -L/opt/oracle/product/9ir2/lib
conftest.c -lclntsh -lmysqlclient -lmcrypt -lltdl -lpng -lz -lz
-lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lxml2 -lz -lm -ldl -lm -lnsl
-lclntsh 1>&5
configure:57266: checking for OCICollAssign in -lclntsh
configure:57285: gcc -o conftest -g -O2
-Wl,-rpath,/opt/oracle/product/9ir2/lib -L/opt/oracle/product/9ir2/lib
-Wl,-rpath,/opt/oracle/product/9ir2/lib -L/opt/oracle/product/9ir2/lib
conftest.c -lclntsh -lmysqlclient -lmcrypt -lltdl -lpng -lz -lz
-lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lxml2 -lz -lm -ldl -lm -lnsl
-lclntsh 1>&5
configure:57575: checking for Adabas support
...
"
I do not know how it should look like....
Makefile created has:
"
...
MYSQL_INCLUDE = -I/usr/include/mysql
OCI8_SHARED_LIBADD =
OCI8_DIR = /opt/oracle/product/9ir2
OCI8_VERSION = 9.2
PCRE_SHARED_LIBADD =
...
"
I checked via simple #ifdef and oci_debug wether
PHP_OCI8_HAVE_COLLECTIONS is defined and it was not.
So I defined it myself but it produces same error as before.....
------------------------------------------------------------------------
[2004-01-14 07:36:21] [EMAIL PROTECTED]
PHP_OCI8_HAVE_COLLECTIONS should be defined in ./configure execution
process. you should not change its value manually.
./configure checks if there are appropriate functions in oracle client
and decides if there is possibility to turn on collection support.
so, check ./config.log, plz.
it seems, that there is no OCICollAssign function in your OCI version.
that's rather strange, 'cause I've tested it successfully with Oracle
9.2.0.1
------------------------------------------------------------------------
[2004-01-14 04:31:19] tomy at envox dot hr
Downloaded http://snaps.php.net/php5-latest.tar.gz
and compiled.
Had to install mysql-develop packages and newer libxml2 packages (I had
to "borrow these from Suse 9.0 since there are no libxml2-2.5.10 for
Suse 8.2, only 2.5.3, hope this is ok).
After compiling and installing I got an error saying that there is no
function named ocinewcollection.
Revised the source in ext/oci8/oci8.c and noticed that
PHP_OCI8_HAVE_COLLECTIONS is note defined, so I defined it and compiled
again.
After that I got same error from the original bug report in slightly
different from. The result of ocinewcollection is still false :(.
Output follows
"
OCIDebug: _oci_open_server new conn=0
dname=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.41)(PORT=1521)))(CONNECT_DATA=(SID=pirana)(SERVER=DEDICATED)))
OCIDebug: _oci_open_session new sess=3 user=system
OCIDebug: oci_do_connect: id=4
Warning: ocinewcollection() [function.ocinewcollection]: OCITypeByName:
ORA-21301: not initialized in object mode in
/srv/www/htdocs/envox/info2.php on line 14
Collection failed
OCIDebug: START php_rshutdown_oci
OCIDebug: END php_rshutdown_oci
OCIDebug: START _oci_coll_list_dtor: 5
OCIDebug: END _oci_coll_list_dtor: 5
OCIDebug: START _oci_conn_list_dtor: id=4
OCIDebug: nothing to do..
OCIDebug: START _oci_close_session: logging-off sess=3
OCIDebug: END _oci_conn_list_dtor: id=4
"
So, yes, you can place this bug into 5CVS also .....
I can only mention once more that the last version that worked is
4.3.1. 4.3.2 introduced this bug and it exists ever since.....
------------------------------------------------------------------------
[2004-01-13 13:50:07] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
------------------------------------------------------------------------
[2004-01-13 13:44:58] [EMAIL PROTECTED]
Please, try PHP5 latest snapshots and check if it works with them.
------------------------------------------------------------------------
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/26892
--
Edit this bug report at http://bugs.php.net/?id=26892&edit=1