¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo convertir un campo decimal en Oracle a varchar en SQL Server sin valores decimales

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 150 Vistas
0
Cargando...


Tengo una columna de origen Oracle llamada COMPONENT decimal (28,7). Estoy intentando cargar esta columna en el servidor SQL de destino, COMPONENT varchar(384).

Los datos de origen son como 7153104.0000000 , quiero cargar estos datos en el destino sin los valores decimales, como 7153104.

He intentado usar cast, to_char, pero todavía obtengo los datos en el destino con valores decimales solamente. ¿Cómo puedo evitarlos?

cast(BOM.COMPONENT,'varchar(384)')

Cuando intento esto, también recibo una advertencia

[Consulta: Consulta]
La conversión de tipo de datos se utilizará para convertir desde el tipo <varchar(64)> de la expresión de mapeo <to_char(BOM.COMPONENT,'varchar(384)')> al tipo <decimal(28,7)> de la columna de destino <COMPONENT>. (BODI-1110410)

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Intenté esto, todavía está tomando los dígitos decimales.

to_char(BOM.COMPONENT,'9999999999999999') esto es lo que utilicé.

todavía la salida es 7153104.0000000.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

A continuación debería funcionar para ti

to_char(7153104.0000000, '9999999999999999');

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola

Si tu columna objetivo es COMPONENT varchar(384), entonces deberías investigar por qué estás recibiendo el mensaje ... para escribir <decimal(28,7)> en la columna objetivo <COMPONENT>.

Si tienes múltiples transformaciones, verifica que tengas el tipo de dato correcto especificado para esta columna en todas las transformaciones.

Michael

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola samuel v ,

Si estás seguro de que los datos almacenados en esta columna son siempre un número y nunca serán un número decimal (sin embargo, tu columna de origen ha definido este campo como decimal), entonces puedes codificar directamente como se muestra a continuación:

cast(cast( BOM.COMPONENT ,'int'),'varchar(384)')

Primero, el código anterior se convertirá en un entero y luego en el tipo de datos de tu columna de destino. Esto eliminará las precisiones (.0000000) del número. Ahora no deberías recibir ninguna advertencia.

Si la columna contiene algo como 7153104.1570000 entonces necesitas usar decimal en lugar de int al hacer el casting en el código anterior, de lo contrario perderás algunos valores.

Espero que esto ayude. Haznos saber si funciona.

Saludos,

MSA

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?