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.
Avalados por :
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)
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.
A continuación debería funcionar para ti
to_char(7153104.0000000, '9999999999999999');
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
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
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute