Avalados por :

Como converter um campo decimal no Oracle para varchar no SQL Server sem valores decimais

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


Tenho uma coluna de origem Oracle chamada COMPONENT decimal (28,7). Estou tentando carregar esta coluna no servidor SQL de destino, COMPONENT varchar(384).

Os dados de origem são como 7153104.0000000 , quero carregar esses dados no destino sem os valores decimais, como 7153104.

Tentei usar cast, to_char, mas ainda obtenho os dados no destino com valores decimais apenas. Como posso evitá-los?

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

Quando tento isso, também recebo um aviso

[Consulta: Consulta]
A conversão de tipo de dados será usada para converter do tipo <varchar(64)> da expressão de mapeamento <to_char(BOM.COMPONENT,'varchar(384)')> para o tipo <decimal(28,7)> da coluna de destino <COMPONENT>. (BODI-1110410)

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

4 Respuestas

0
Cargando...

Tentei isso, ainda está mantendo os dígitos decimais.

to_char(BOM.COMPONENT,'9999999999999999') é o que eu usei.

ainda a saída é 7153104.0000000.

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

Deveria funcionar para você:

to_char(7153104.0000000, '9999999999999999');

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

Olá

Se sua coluna de destino é COMPONENT varchar(384), então você deve investigar por que está recebendo a mensagem ... para escrever <decimal(28,7)> na coluna destino <COMPONENT>.

Se você tiver várias transformações, verifique se o tipo de dados correto está especificado para esta coluna em todas as transformações.

Michael

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

Olá samuel v ,

Se você tem certeza de que os dados armazenados nesta coluna são sempre um número e nunca serão um número decimal (no entanto, sua coluna de origem definiu este campo como decimal), então você pode codificar diretamente como mostrado abaixo:

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

Primeiro, o código acima será convertido em um número inteiro e então no tipo de dados da sua coluna de destino. Isso removerá as precisões (.0000000) do número. Agora você não deve receber nenhum aviso.

Se a coluna contiver algo como 7153104.1570000 então você precisa usar decimal em vez de int ao fazer o cast no código acima, caso contrário você perderá alguns valores.

Espero que isso ajude. Deixe-nos saber se funcionar.

Saudações,

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?