Fallo de update con tipo LONG

Rocio otra vez
30 de Junio del 2006
Hola de nuevo. A ver, tengo otro problema. En una tabla tengo un campo de tipo long. Pues bien, tengo un procedimiento PL-SQL que lo que tiene que hacer en un momento del proceso de la aplicación es copiar este long, en otro campo de tipo de long de otra tabla distinta. El caso es que cuando toca hacer el update me salta el error ora-01704: string literal too long. Creo que es porque se superan los 2000 caracteres, pero para eso es un long :-|
Bueno, esta es la instrucción que falla:

EXECUTE IMMEDIATE 'UPDATE PAT_INMUEBLES SET DESCRIPCION =''' || VALOR_LONG || ''' WHERE PI_ID=1778;

Salu2!!

Rodolfo Reyes
30 de Junio del 2006
Esto es lo que dice la ayuda sobre el error:

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.

¿porque ejecutas el update de esa manera?

creo que si lo hicieras

update PAT_INMUEBLES a set descripcion =
(select b.campo_long
from tabla b
where b.campo = ... and
a.pi_id = 1778
);

te funcionaria mejor.


Rocio
30 de Junio del 2006
Es cierto. Qué burra soy :-P
Intentaré probarlo el lunes a primera hora. Ya te cuento. Gracias!

jc3000
30 de Junio del 2006
No lo intentes, no va a funcionar.

Con los campos long no vale eso de insert-select.

Si me acuerdo, el lunes lo miro en el curro y te lo digo.


Rocio
30 de Junio del 2006
Vale! muchas gracias.