ORA-01704 Literal de cadena demasiado largo cuando se usa con Code Igniter

Currently I am develop web app using Code Igniter and Oracle database. When I try to insert long char for CLOB column I get error

ORA-01704 String literal too long

How to fix this in CI?

Say I have a table in oracle like this

CREATE TABLE test(
   ID NUMBER,
   SUMMARY CLOB
)

When I try to insert a row (with more than 4000 cahr for SUMMARY column) using CI by this command

$this->db->set('ID','123');
$this->db->set('SUMMARY','Very long text is here');
$this->db->insert('test');

tengo el string literal is too long

I use Oracle 10g

preguntado el 01 de febrero de 12 a las 03:02

show us how & what you're doing -

Are you using pdo_oci or oci8 extension? What is the version of Oracle you are connecting to? -

Have you tried looking up the error number? There are plenty of articles describing it's occurence and possible fixes, like dba-oracle.com/t_ora_01704_string_literal_too_long.htm -

I have already searched in google how to fix this. but I found nothing. Also I find the the url you given me from google, but I cannot access the url. I don't know why -

1 Respuestas

ORA-01704: string literal too long
Cause: The string literal is longer than 4000 characters.
Action: Use a string literal of at most 4000 characters.
Longer values may only be entered using bind variables.

When inserting/updating CLOB values longer than 4000 characters it's needed to use binded parameters.

I'm not Code Igniter user but examinig Code Igniter's database abstraction classes shows that it doesn't use prepared statements and real variable binding (BTW: I wouldn't use Code Igniter framework because of this...).

So, the conclusion is you can't do what you want to do using Code Igniter's helpers for database interaction, at least without rewriting some of its code. I believe that in this particular case you must use "pure" PDO interface.

Respondido el 19 de diciembre de 12 a las 13:12

yes, you're right. I used the PDO interface, and it's work. Thanks - Lhuqita Fazry

@Furgas : I am into the similar problem and the link you have provided for pure PDO interface doesn't work. Will you please re post the valid link. Thank you... - hsuk

abuzuhair, will you please help me with what you have done so far to fix the issue ? - hsuk

@KusH: I've fixed the link. - Furgas

@Furgas : I tried the PDO too. Works fine with strings less than 4000 chars. Doesn't work for string that has 4000 chars plus . - hsuk

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.