|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2006-09-27 07:59 UTC] masui at emplex dot co dot jp
Description:
------------
OCI-Lob->load returns broken character or nothing in php 5.2.0RC4.
It is occurred in 64bit linux, in 32bit linux OCI-Lob->read returns correct multibyte string.
My Oracle database is R10.2.0.2.0, charset is AL32UTF8.
Downgrading to php 5.2.0RC1, it works correct, so this might be bug.
Best regards
Hideaki Masui
Reproduce code:
---------------
$conn = oci_connect('scot', 'tiger', 'xxx');
if (!$conn) exit;
$query = 'SELECT LOBDATA FROM LOBTEST';
$stid = oci_parse($conn, $query);
if (!$stid) exit;
$r = oci_execute($stid, OCI_DEFAULT);
if (!$r) exit;
while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) {
echo $row['LOBDATA']->load() ."\n";
}
oci_close($conn);
Expected result:
----------------
The "echo $row['LOBDATA']->load();" line should return
the actual mulitibyte string from the select statement.
Actual result:
--------------
$row['LOBDATA']->load() returns broken character or nothing.
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 20 21:00:02 2025 UTC |
I set NLS_LANG in /usr/local/apache2/bin/envvars. Following is my setting. export ORACLE_BASE=/home/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export NLS_LANG=.AL32UTF8 export PATH=$PATH:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export ORA_NLS10=$ORACLE_HOME/nls/data export LD_PRELOAD=$ORACLE_HOME/lib/libclntsh.so.10.1 I tested by access from web browser. Following is create table and insert data. CREATE TABLE LOBTEST ( LOBDATA CLOB ); insert INTO LOBTEST VALUES (UTL_RAW.CAST_TO_VARCHAR2('A3B0A3B1A3B2A3B3A3B4A3B5A3B6A3B7A3B8A3B9'));This is what I get back when I insert UTL_RAW.CAST_TO_VARCHAR2('A3B0A3B1A3B2A3B3A3B4A3B5A3B6A3B7A3B8A3B9'): string(40) "�Zˆ?“?ŽOŽlŒ?˜ZŽ?”?‹?"