Edit report at https://bugs.php.net/bug.php?id=63809&edit=1

 ID:                 63809
 Updated by:         s...@php.net
 Reported by:        blair dot chesnut at gmail dot com
 Summary:            ORA-01461 when inserting/updating more that 1333
                     characters
-Status:             Assigned
+Status:             Open
 Type:               Bug
 Package:            PDO related
 Operating System:   Unix/Solaris 10
 PHP Version:        5.4.9
-Assigned To:        sixd
+Assigned To:        
 Block user comment: N
 Private report:     N

 New Comment:

See also https://bugs.php.net/bug.php?id=54379

value_sz is set to allow for character set conversion due to different client 
and 
server character sets.  This might increase the storage requirements when the 
data is stored in the server. The hardcoded choice of the ratio is questionable.


Previous Comments:
------------------------------------------------------------------------
[2012-12-19 19:42:49] blair dot chesnut at gmail dot com

Description:
------------
Using PDO/OCI via Yii framework. Inserts/updates to varchar2(4000) column fail 
with error ORA-01461 when value exceeds 1332 characters. 

Line 300 of source php-5.4.9/ext/pdo_oci/oci_statement.c:

value_sz = 1332; /* maximum size before value is interpreted as a LONG value */

Why???  

I changed to "value_sz = 4000", recompiled, and inserts/updates work fine. I'm 
not using CLOBs, only varchar2() columns. 


Test script:
---------------
$dbh = new PDO($dsn, $dbuser, $dbpass);
 
$sth = $dbh->prepare('insert into some_table (some_varchar4000_column) values 
(:p1)');
 
$big_value = str_repeat('ABCDEFGHIJ', 300);
$sth->bindValue(':p1', $big_value, PDO::PARAM_STR);
 
$sth->execute();
print_r($sth->errorInfo());


Expected result:
----------------
Array
(
    [0] => 00000
    [1] => 
    [2] => 
)


Actual result:
--------------
Array
(
    [0] => HY000
    [1] => 1461
    [2] => OCIStmtExecute: ORA-01461: can bind a LONG value only for insert 
into a LONG column
 (/usr/local/src/php-5.4.5/ext/pdo_oci/oci_statement.c:146)
)



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



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

Reply via email to