Oracle - ORA-06502 CONCATENANDO

 
Vista:

ORA-06502 CONCATENANDO

Publicado por ELIA (43 intervenciones) el 11/07/2003 14:32:03
Hola de nuevo Compañeros, otro vez requiero de vuestros conocimientos,
al intentar actualizar un campo, concatenando lo q tenía ese campo con el contenido de dos items y uno de ellos poniedolo entre paréntesis, me sale el error ORA-06502

DECLARE
Boton number;
Wnota char;

BEGIN
.......
.......

Wnota := :SITUACION.NOTAS;
Wnota := wnota ||':control.NOTA' || '(' || :control.cantidad ||')';
:SITUACION.NOTAS = wnota;


GO_ITEM('SITUACION.NOTAS');

END;
Siendo control.nota tipo char,y control.cantidad tipo number, tambien he probado poniendo entre comillas 'wnota' pero siempre me sale el error
FRM-40735: El disparador KEY-NEXT-ITEM ha provocado la excepción ORA-06502 no tratada.
Gracias por atenderme, Elia.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ORA-06502 CONCATENANDO

Publicado por Byron (300 intervenciones) el 11/07/2003 16:26:57
ORA-06502, "PL/SQL: numeric or value error"

Este error ocurre frecuentemente en dos ocasiones: 1) Cuando la longitud del campo al que se le asigna un valor no es suficiente para dicho valor. 2) Cuando ocurre un error de conversión de datos, e intentas asignar un char (que contiene letras y no numeros) a un campo numérico.

Te recomendaria que cambies el tipo char por el tipo de datos varchar2, este tipo de datos es el optimizado para almacenar cadenas.

Wnota := wnota ||':control.NOTA' || '(' || :control.cantidad ||')';

Aqui parece haber un error todo valor encerrado entre comillas es una cadena, es decir ':control.NOTA' es una cadena fija, mientras que :control.NOTA (sin comillas) es una variable de cadena, por lo tanto estarias concatenando la cadena ':control.NOTA' en vez del contenido de la variable.

Quiza el error que hace abortar la ejecucion es la longitud del item :SITUACION.NOTAS, verifica la cantidad máxima que se pudiera generar en la concatenacion para asignarle a la longitud del item.

En ocasiones es conveniente usar el Run Form Debug solo para averiguar la línea que produce el error.

Saludos DTB
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ORA-06502 CONCATENANDO

Publicado por ELIA (43 intervenciones) el 14/07/2003 10:19:35
Buenos Días Byron,
Efectivamente, como tú bien decías, cambiando el tipo de carácter de Char a Varchar2 (n), he solucionado el problema, y por supuesto , quitando las comillas sobrantes, q me concatenaban el literal y no el contenido, Muchas gracias de nuevo, no sé como agradecerte. Un Saludo, ELIA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar