ID:               33564
 User updated by:  daniel at bitarts dot com
 Reported By:      daniel at bitarts dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         OCI8 related
 Operating System: solaris
 PHP Version:      5.0.4
 New Comment:

Same things happens there too, when I add lots of characters. Seems to
be a bug in oracle?


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

[2005-07-04 22:24:47] [EMAIL PROTECTED]

And what if you try to do the same with SQLPlus?
Do the same query work for you?

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

[2005-07-04 16:20:41] daniel at bitarts dot com

I am using Oracle 9i

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

[2005-07-04 16:18:57] daniel at bitarts dot com

Description:
------------
Trying to insert data into an NCLOB field. I can do this by using a
TRANSLATE in my sql, and binding variable with the OCIBindByName
functions. However, when I pass a certain amount of characters, the
update fails with this (incorrect) error:
Warning: ociexecute() [function.ociexecute]: OCIStmtExecute: ORA-12703:
this character set conversion is not supported 

That amount of characters seems to be 2000. In the code below, if you
change this line
$data = str_pad($data, 2001, "a");   
to
$data = str_pad($data, 2000, "a");

It works fine. It's only when you try to insert more than 2000
characters you get this odd behaviour.

Thank you.
Daniel   

Reproduce code:
---------------
$data = str_pad($data, 2001, "a");    
                                                 
$lob = OCINewDescriptor($conn, OCI_D_LOB); 
$stmt = OCIParse($conn,"UPDATE TEST 
                        SET NCLOB_TEST = TRANSLATE(:NCLOB_TEST USING
NCHAR_CS) 
                        WHERE ID='1'"); 

OCIBindByName($stmt, ':NCLOB_TEST', &$lob, -1, OCI_B_CLOB); 
$lob->WriteTemporary($data); 
OCIExecute($stmt, OCI_DEFAULT); 
$lob->close(); 
$lob->free(); 
OCICommit($conn);

Expected result:
----------------
The NCLOB data field fills with 2001 "a" characters

Actual result:
--------------
error message:
Warning: ociexecute() [function.ociexecute]: OCIStmtExecute: ORA-12703:
this character set conversion is not supported 

Nothing added to database.


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


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

Reply via email to