SQL Server - importe de texto (valor)

 
Vista:

importe de texto (valor)

Publicado por Javier (45 intervenciones) el 07/01/2011 14:55:02
Hola
Una ayuda, necesito cargar en sql un archivo plano, este archivo plano es generado desde mainframe y un campo que corresponde un valor viene en el siguiente formato:
9.9600000000000000E+03
Alguien sabe que tipo de transformacion debo hacer para tener la columna en tipo float?.
Gracias
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:importe de texto (valor)

Publicado por Isaias (4558 intervenciones) el 07/01/2011 23:26:19
No lo tomes como un char, simplemente ejecutalo asi:

SELECT CAST(9.9600000000000000E+03 AS BIGINT)

R= 9960
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:importe de texto (valor)

Publicado por Javier (45 intervenciones) el 13/01/2011 21:00:23
Gracias, voy a intentarlo con el tipo de dato BIGINT pero en mis pruebas ha pasado algo extraño, si hago un cast me transforma el dato correctamente pero cuando ejecuto un update para convertir de forma general el campo los exponenciales superiores a E06 me los deja con el exponencial E07 y E08.
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:importe de texto (valor)

Publicado por javier (45 intervenciones) el 13/01/2011 22:47:51
con el bigint tampoco me permite hacer la transformacion masiva, me sale el error de conversión. :(
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:importe de texto (valor)

Publicado por Isaias (4558 intervenciones) el 13/01/2011 23:41:55
Porque seguramente tendras valores que no se puedan convertir, para sacar aquellos que NO SON NUMERICOS, hazlo asi:

SELECT * FROM tutabla WHERE ISNUMERIC(CAST(tucolumna as bigint)) = 0

Eso, te dara la lista de los NO NUMERICOS.
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:importe de texto (valor)

Publicado por Javier (45 intervenciones) el 13/01/2011 23:46:59
Gracias.
Todos los valores se podian convertir, fue necesario hacer una doble transformacion para que me permitiera hacer la actualizacion masiva

UPDATE Tabla
SET Campo2 = Convert(Numeric(38,5), Cast(Campo1 as float))
De esta forma si me dejó hacer la conversión masiva.
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