none
Servidor Vinculado Oracle 9,0 RRS feed

  • Pergunta

  • Prezados, boa tarde!!

    Precisamos importar registros do Oracle para nosso Sql Server 2014, para isso vinculei o mesmo ao SQL. Conexão ok, porem ao verificar um campo Numeric o mesmo esta desconsiderando os dados apos a virgula (,). Exemplo:

    CORRETO     APRESENTADO

    182,50         182

    12,32            12

    Alguma sugestão sobre este problema

    Certo da atenção de sempre 

    quinta-feira, 28 de julho de 2016 16:46

Respostas

Todas as Respostas

  • Boa tarde Marcelinho, 

    Normalmente isso é a configuração regional da maquina que esta realizando a operação, verifique se suas configurações regionais estão no mesmo padrão do Servidor.

    Att

    Reginaldo C Silva

    quinta-feira, 28 de julho de 2016 18:32
  • Reginaldo, no poderia ser a Configuração, pois trocaria Ponto(.) por Virgula(,), e não desconsideraria os outros caracteres. Mesmo assim verifiquei e as configurações são as Mesma. O que esta me causando estranheza e dificuldade em descobrir o problema é que ele descarta as duas casas decimais.

    Lembrando, estou utilizando LinkedServer do Sql para o Oracle

    Abs

    segunda-feira, 1 de agosto de 2016 19:28
  • Fala amigo...

    No Oracle campo de valores normalmente são declarados como Number(18,4) , O "(18,4)" é opcional.

    Alguns programadores não adotam a política de declarar explicitamente o tamanho do campo nem a quantidade de casas decimais que ela comporta, uma vez que o Oracle consegue gerenciar o campo de forma mais dinâmica, ou seja, se declarar como Number e fizer um insert de 182,50 ele vai aceitar e não dará erro do Overflow.

    Dito isso, acho que seu campo no Oracle está como Number (sem o tamanho), e isso é normal, o que deverá fazer é uma conversão na sua instrução SQL do Oracle para importar ao banco SQL SERVER.

    Select to_char(182.50,'000.00') from Dual; 

    Tenta usar assim fera..

    abcs


    Isco Sistemas José Luiz Borges

    terça-feira, 2 de agosto de 2016 11:43
  • Luiz, não tenho acesso diretamente ao Oracle, Uso diretamente o Management Studio atraves do LinkedServer, nao tendo o atributo to_char, com isso, continuo com problema.

    Abs

    terça-feira, 2 de agosto de 2016 17:04
  • ok..

    então na sua instrução faça para converter no sql....

    Select Convert(Decimal(18,4), coluna_do_oracle) from LinkServer.shema.tabela


    Isco Sistemas José Luiz Borges

    terça-feira, 2 de agosto de 2016 17:38
  • Nosso problema não é de conversão, e sim de ausencia de casas. O valor que contem no Oracle é de 18,22, ao fazer a query no SQL Server aparece apenas as duas primeiras casas 18

    terça-feira, 2 de agosto de 2016 18:48
  • Marcelinho,

    Dê uma olhada nesse link: https://support.microsoft.com/en-us/kb/3051993


    Carlos Eduardo Ferreira

    terça-feira, 2 de agosto de 2016 19:09
  • Carlos, muitissimo obrigado pela resposta, agora esta funcionando perfeitamente. Quero tambem agradecer ha todo(a)s os outro(a)s que dedicaram seu tempo ao meu post.

    Abs

    terça-feira, 2 de agosto de 2016 20:29