Fallo de update con tipo LONG
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!!
Bueno, esta es la instrucción que falla:
EXECUTE IMMEDIATE 'UPDATE PAT_INMUEBLES SET DESCRIPCION =''' || VALOR_LONG || ''' WHERE PI_ID=1778;
Salu2!!
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.
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.
Es cierto. Qué burra soy :-P
Intentaré probarlo el lunes a primera hora. Ya te cuento. Gracias!
Intentaré probarlo el lunes a primera hora. Ya te cuento. Gracias!
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.
Con los campos long no vale eso de insert-select.
Si me acuerdo, el lunes lo miro en el curro y te lo digo.