Conversión a numeric

19/04/2007 - 00:40 por Chevy | Informe spam
Hola Grupo,

tengo un campo tipo varchar(50) el cual se supone que contiene cadenas que
se deben convertir a un numeric(18,5).

La funcion CONVERT sobre ese campo me dice que no puede convertir varchar a
numeric.
Le paso la función ISNUMERIC al campo y dice que todos los valores son
numéricos.
Reviso en detalle y veo que la función ISNUMERIC reconoce como valores
numéricos las cadenas '.' , ',' , '-' y el '+', y que la función CONVERT no
puede procesar.

La pregunta es, cómo puedo determinar los registros de esa tabla que la
función CONVERT no puede procesar, porque la funcion ISNUMERIC en realidad no
me da el 100% de confianza en que el valor se puede convertir.

Otro problema que tengo es que algunos valores de ese campo tienen
caracteres ASCCI no imprimibles, al observarlos, pareciera que son cadenas
que se pueden convertir pero si se revisa caracter por caracter en la cadena,
se encuentra un caracter no numérico que impide el "casteo" a NUMERIC. Aquí,
lo que necesitaría es una función para hallar esos caracteres y poder
eliminarlos para que la cadena quede limpia y se pueda convertir a NUMERIC.

Tabla X
cadenaNUM CONVERTNumeric ISNUMERIC(cadenaNUM )
1054.33 1054.33 1
. error 1
+ error 1

mil gracias por sus sugerencias

Eusebio
 

Leer las respuestas

#1 Maxi
19/04/2007 - 02:14 | Informe spam
Hola, creo que hay algo conceptual que estas mal interpretando. Vos no
queres convertir a un numeric sino a decimal.
Francamente esto esta mal asi, porque si el tipo de datos es decimal se
guarda en un char 50? eso no esta nada bien, el tipo de dato deberia
representar lo que realmente guardes y de no ser asi no habra control sobre
esa propiedad.

"Chevy" wrote in message
news:
Hola Grupo,

tengo un campo tipo varchar(50) el cual se supone que contiene cadenas que
se deben convertir a un numeric(18,5).

La funcion CONVERT sobre ese campo me dice que no puede convertir varchar
a
numeric.
Le paso la función ISNUMERIC al campo y dice que todos los valores son
numéricos.
Reviso en detalle y veo que la función ISNUMERIC reconoce como valores
numéricos las cadenas '.' , ',' , '-' y el '+', y que la función CONVERT
no
puede procesar.

La pregunta es, cómo puedo determinar los registros de esa tabla que la
función CONVERT no puede procesar, porque la funcion ISNUMERIC en realidad
no
me da el 100% de confianza en que el valor se puede convertir.

Otro problema que tengo es que algunos valores de ese campo tienen
caracteres ASCCI no imprimibles, al observarlos, pareciera que son cadenas
que se pueden convertir pero si se revisa caracter por caracter en la
cadena,
se encuentra un caracter no numérico que impide el "casteo" a NUMERIC.
Aquí,
lo que necesitaría es una función para hallar esos caracteres y poder
eliminarlos para que la cadena quede limpia y se pueda convertir a
NUMERIC.

Tabla X
cadenaNUM CONVERTNumeric ISNUMERIC(cadenaNUM )
1054.33 1054.33 1
. error 1
+ error 1

mil gracias por sus sugerencias

Eusebio

Preguntas similares