ID:               45659
 Updated by:       [EMAIL PROTECTED]
 Reported By:      cuichangjie at gmail dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         OCI8 related
 Operating System: windows xp
 PHP Version:      5.2.6
-Assigned To:      
+Assigned To:      sixd
 New Comment:

Please give Oracle DB and Oracle client versions.  What is the DB
character set and what are the NLS settings used by PHP?  Do you specify
a character set in oci_connect()?


Previous Comments:
------------------------------------------------------------------------

[2008-07-30 07:56:13] cuichangjie at gmail dot com

Description:
------------
When insert some japanese charectar (encoding type is "SJIS") using
OCIBindByName and oci_execute, oracle has return the ORA-12899 error,it
is seems like some addition bytes has been added after OCIBindByName.

Reproduce code:
---------------
//a table with 2 column, 
//empno -- number(1)
//ename -- varchar2(6)
$stmt = oci_parse($conn, " INSERT INTO                                 
  emp (empno, ename)  VALUES( :0, :1)");

$ret = OCIBindByName(stmt, ':0', 1);
//error check
...
$ret = OCIBindByName(stmt, ':1', '日本語');
//error check
...

$ret = oci_execute($stmt);

//error check
...


oracle's error shows :
ORA-12899: value too large for column "USER0"."MyTable"."ename"
(actual: 9, maximum: 6)]

Expected result:
----------------
The string: '日本語' should be 6 bytes, 
echo strlen('日本語'); //should show us : 6




------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=45659&edit=1

Reply via email to