Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/03/2011, 11:33
Avatar de egepe
egepe
 
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Pregunta campo CLOB php error 1704

Estimados tengo un problema con un campo clob.

Originalmente la tabla esa en mysql y utilizando sqldevelor la "migre" a oracle. Oracle convierte los campos TEXT de mysql a CLOB. Hasta aquí todo bien y sin problema.

Pero cuando en mi aplicación guardo un texto relativamente pequeño, sigue sin haber problema. El rollo se presenta cuando trato de guardar ahí algún texto muy extenso y me arroja el error ora-1704
PHP Warning: oci_execute(): ORA-01704: literal de cadena demasiado largo

busque en algunas soluciones y todos me dicen que debo hacer el insert con variables tipo bind. Sin embargo, hago tal cual lo indica "The Underground PHP
and Oracle Manual"

Código PHP:
<?php
$c 
oci_connect('hr''hrpwd''localhost/XE');
$myblobid 123;
$myv 'a very large amount of binary data';
$s oci_parse($c'insert into mybtab (blobid, blobdata)
values (:myblobid, EMPTY_BLOB())
returning blobdata into :blobdata'
);
$lob oci_new_descriptor($cOCI_D_LOB);
oci_bind_by_name($s':myblobid'$myblobid);
oci_bind_by_name($s':blobdata'$lob, -1OCI_B_BLOB);
oci_execute($sOCI_DEFAULT); // use OCI_DEFAULT so $lob->save() works
$lob->save($myv);
oci_commit($c);
$lob->close(); // close LOB descriptor to free resources
?>
Esta es la base que utilice para modificar mi insert que como mencione era el "típico de sql". Ahora no sé si el problema estuvo en que mi tabla a diferencia de la tabla mytab que aparece en el ejemplo, tiene además del id y el campo clob, cuatro (4) campos más, varchar2 y numeric?

Saludos