ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

PROBLEMA COM LINKED SERVER COM SQL SERVER E ORACLE

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
etspaz
Novato
Novato


Registrado: Quarta-Feira, 15 de Julho de 2009
Mensagens: 5

MensagemEnviada: Qua Ago 05, 2009 2:02 pm    Assunto: PROBLEMA COM LINKED SERVER COM SQL SERVER E ORACLE Responder com Citação

Boa tarde pessoal,

Estou precisando criar um linked server de um banco no sql server 2000 para o oracle 9i.
Seguindo alguns exemplos da net, fiz o sequinte:
Código:

EXEC sp_addlinkedserver 'CRC','Oracle','MSDAORA','IP SERVIDOR'
EXEC sp_addlinkedsrvlogin 'CRC2', 'false', NULL, 'USUARIO', 'SENHA'


ele até cria, mas não funciona, quando tento acessar da o seguinte erro:
Código:
Server: Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'MSDAORA' reported an error. 
[OLE/DB provider returned message: ORA-12514: TNS:listener não conseguiu resolver o SERVICE_NAME fornecido no descitor de conexão
]
OLE DB error trace [OLE/DB Provider 'MSDAORA' IDBInitialize::Initialize returned 0x80004005:   ].


segue a query de teste utilizada:

Código:
select * from CRC..CRCOW.TB_RECEITATRAFEGO
WHERE UF = 'PA' AND CICLO='71' AND COMPETENCIA = '200904' AND DTCHAM ='8/4/2009'
AND CSP = '' AND TARIFA='CHAMADA LOCAL' AND DIRECAO = 'MMO' AND SENTIDO = 'S'
AND HORARIO='N' AND AREAORIGEM = 'PAH037' AND PLANO = 'PLANO NAC6 100 MIN'
AND INDICADORFATURADO='0' AND VALORLIQUIDO='0' AND VALORBRUTO='7,04'
AND DURACAOFRANQUEADA='0' AND DURACAOTARIFADA='1326' AND DURACAOREAL='1272'
AND QUANTIDADE=15 AND INSERT_DT='10/4/2009' AND CONTA='200904'


A configuração no tsnames.ora:

Código:
# CRC
CRCPR1 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.128.0.176)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = crcpr1)

    )

  )
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
DonOctavioDelFlores
Colaborador
Colaborador


Registrado: Quarta-Feira, 12 de Setembro de 2007
Mensagens: 2630
Localização: Pra lá de Bagda

MensagemEnviada: Qua Ago 05, 2009 5:06 pm    Assunto: Responder com Citação

ele nao ta achando o servico "crcpr1".

veja se esse link resolve

http://ora-12514.ora-code.com/

muito bom esse site Very Happy
_________________
“The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
etspaz
Novato
Novato


Registrado: Quarta-Feira, 15 de Julho de 2009
Mensagens: 5

MensagemEnviada: Qui Ago 06, 2009 9:07 am    Assunto: Responder com Citação

Bom dia DonOctavioDelFlores,
Eu consegui criar o linked server e acessar corretamente, seguindo o exemplo que encontrei num bolg:


Código:

EXEC sp_addlinkedserver
@server = ‘ORA’,
@srvproduct = ‘Oracle’,
@provider = ‘OraOLEDB.Oracle’,
@datasrc = ‘(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE)))’
GO



EXEC sp_addlinkedsrvlogin
@rmtsrvname = ‘ORA’,
@useself = ‘FALSE’,
@rmtuser = ‘orausr’,
@rmtpassword = ‘orapass’
GO


o exemplo usa o oracle xe, mas serviu para o 9i que é o que uso.
Porém, agora estou com um problema de conversão entre os tipos number do oracle.
Este problema já foi relatado pelo autor do exemplo, mas a solução que ele deu não me serve.
usar openquery e dar um to_char no campo number. mas preciso fazer join com uma tabela do sql server, aí ele reclama:


Código:

Server: Msg 7356, Level 16, State 1, Line 1
OLE DB provider 'MSDAORA' supplied inconsistent metadata for a column. Metadata information was changed at execution time.
OLE DB error trace [Non-interface error:  Column 'QUANTIDADE' (compile-time ordinal 13) of object '"CRCOW"."TB_RECEITATRAFEGO"' was reported to have a DBTYPE of 130 at compile time and 5 at run time].
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB