Conversão de dados DBLINK

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Avatar do usuário
bessa_lucas
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 55
Registrado em: Sex, 17 Out 2014 3:02 pm
Lucas Bessa
Analista de Sistemas

lucas.bessa@obers.com.br
lucas.bessa.ti@gmail.com

Olá pessoal,

Estou com um DBLINK fazendo conexão entre o Oracle 11G e o Sql Server 2014. A conexão e o retorno dos dados está ok.
Mas os campos de valor... no sqlserver, tenho um campo 'troco' no formato decimal(15,4). E lá tem um valor 98.7300

Quando faço o select no oracle, ele me retorna somente 98.

Já tentei cast, convert, mas nada faz retornar 98,73, que seria o valor que preciso.

Alguém já passou por alguma situação parecida?
souldeath
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Qua, 25 Ago 2010 9:39 am
Localização: Limeira

bessa_lucas, nunca trabalhei com dblink dessa forma, pode postar como está fazendo a consulta? Você já tentou usar to_char pra pegar esse campo decimal? Talvez tentando trazer esse campo como texto não seja feito truncate.
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

Brother,o jeito mais prático é utilizar a function Trunc ,basta definir o número de casas decimais depois da virgula conforme o exemplo abaixo e adaptar da forma que bem entender:

Selecionar tudo

[oracle@adriano root]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 6 16:31:33 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production

SQL> SELECT TRUNC (98.73, 2) AS valor FROM DUAL;

     VALOR
----------
     98.73

SQL>


Bom é isso ,espero te ajudado,boa sorte.
spernega
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Ter, 19 Jun 2007 2:12 pm
Localização: São Paulo - SP

Bom dia bessa,

Dá uma olhada nesse link

https://support.microsoft.com/en-us/kb/3051993

espero que ajude.
Avatar do usuário
bessa_lucas
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 55
Registrado em: Sex, 17 Out 2014 3:02 pm
Lucas Bessa
Analista de Sistemas

lucas.bessa@obers.com.br
lucas.bessa.ti@gmail.com

Pessoal, acho que descobri.

Já tinha tentado o trunc também...
É uma diferença de caracteres entre os bancos.
Foi só adicionar a linha de HS_LANGUAGE no arquivo do HS

HS_FDS_CONNECT_INFO = SQLSERVER
HS_FDS_TRACE_LEVEL = 0
HS_LANGUAGE="AMERICAN_AMERICA.AL32UTF8"

Estou fazendo um teste no XE e o padrão de caracteres dele é diferente.
Que agora começou a aparecer.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Majestic-12 [Bot] e 3 visitantes