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

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



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