Você está offline; aguardando reconexão

PROBLEMA: Consulta do SQL distribuído com Oracle causa "não foi possível abrir tabela" Erro

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 240340
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Tentando usar uma consulta com um servidor vinculado do Oracle usando o provedor MSDAORA OLE, por exemplo:
select * from OracleServer..demo.Product				
pode causar um erro semelhante à seguinte:
Servidor: Mensagem 7306, nível 16, estado 2, linha 1
Não foi possível abrir a tabela ' "demonstração". "Produto"' do provedor do OLE DB 'MSDAORA'. A tabela especificada não existe.
[Provedor OLE/DB retornado mensagem: A tabela especificada não existe]
[Provedor OLE/DB retornado mensagem: ORA-00942: tabela ou modo de exibição não existe]
Causa
A consulta pode não funcionar devido a diferenciação de maiúsculas no Oracle como o SQL Server usa nomes entre aspas quando enviá-lo consultas para um provedor.
Como Contornar
Use as seguintes regras quando fazer referência a tabelas em um servidor vinculado do Oracle:
  • Se os nomes da tabela e da coluna foram criados no Oracle sem identificadores entre aspas, use todos os nomes em maiúsculas. Por exemplo, o seguinte deve funcionar OK:
    select * from OracleServer..DEMO.PRODUCT						
  • Se os nomes da tabela e da coluna foram criados no Oracle com identificadores entre aspas, use o mesmo caso para todas as letras dos nomes de como foi usado quando os nomes foram criados no Oracle.
Diferenciação de maiúsculas e minúsculas não é um problema ao usar a função OpenRowset ou AbrirConsulta. O seguinte deve funcionar OK:
SELECT * FROM OPENQUERY(OracleServer, 'select * from PrOdUct')goSELECT * FROM OPENRowset('MSDAORA', 'myOracleServer';'demo';'demo', 'select * from PrOdUct' )go				
Mais Informações
Microsoft SQL Server versão 7.0 fornece a capacidade de executar consultas em provedores de banco de dados OLE. Isso é feito usando as funções OpenRowset Transact-SQL ou OpenQuery ou usando uma consulta com quatro nomes de parte, incluindo um nome de servidor vinculado. Por exemplo:
sp_addlinkedserver 'mylinkedserver', 'product_name', 'myoledbprovider', 'data_source','location', 'provider_string', 'catalog'SELECT * FROM OPENQUERY(mylinkedserver, 'select * from table1')				

Passos para reproduzir o problema

  1. Configurar um servidor vinculado para servidor Oracle:
    EXEC sp_addlinkedserver   'OracleServer',  'Oracle',  'MSDAORA',  'myOracleServer'goEXEC sp_addlinkedsrvlogin 'OracleServer', 'FALSE', NULL, 'demo', 'demo'go						
  2. Especificar uma consulta de nome de quatro parte:
    SELECT * FROM OracleServer..demo.Product						
    que informa o erro descrito na seção Sintomas.

REFERÊNCIAS

Para obter informações adicionais no SQL Server consultas distribuídas com fonte de dados Oracle, consulte o tópico SQL 7.0 Books Online "OLE DB Provider para Oracle" e os seguintes artigos na Base de dados de Conhecimento da Microsoft:
220915PROBLEMA: Consulta distribuída SQL com Oracle precisa cliente Oracle

221552PROBLEMA: SQL Distributed consulta com erro de coluna NUMERIC Oracle exibe

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 240340 - Última Revisão: 02/23/2014 19:23:48 - Revisão: 4.2

Microsoft SQL Server 7.0 Standard Edition, Microsoft OLE DB Provider for Oracle Server 1.0, Microsoft OLE DB Provider for Oracle Server 1.0, Microsoft OLE DB Provider for Oracle Server 1.0, Microsoft OLE DB Provider for Oracle Server 1.0, Microsoft OLE DB Provider for Oracle Server 1.0, Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbdatabase kboracle kbprb KB240340 KbMtpt
Comentários