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

Preguntas similare

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:
Mostrar la cita
#2 Chevy
19/04/2007 - 15:28 | Informe spam
Gracias Maxi,

Olvidé comentar que la tabla con el tipo de datos varchar y cuyos datos
quiero pasar a un tip de datos NUMERIC es una tabla que se importó de un
archivo plano proveniente de un sistema llamado PICK (es una base de datos
poco usada que no es relacional y que ni siquiera maneja tipos de datos).
Lo que estoy haciendo es migrar la información de ese sistema a una base de
datos SQL Server 2000, y estoy cargando los planos que me dan a tablas SQL
Server cuyos campos son todos VARCHAR para luego depurar la información y
ponerla en tablas tipadas correctamente.


Eusebio


"Maxi" wrote:

Mostrar la cita
#3 Maxi
19/04/2007 - 17:04 | Informe spam
Hola, de ser asi vas a tener que customizar la informacion, y quizas ver uno
a uno


Salu2

Microsoft MVP SQL Server
Culminis Speaker

"Chevy" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida