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

Traduções deste artigo Traduções deste artigo
ID do artigo: 240340 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Neste artigo

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')
go
SELECT * 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'
    go
    EXEC 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

Propriedades

ID do artigo: 240340 - Última revisão: domingo, 23 de fevereiro de 2014 - Revisão: 4.2
A informação contida neste artigo aplica-se a:
  • 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
Palavras-chave: 
kbnosurvey kbarchive kbmt kbdatabase kboracle kbprb KB240340 KbMtpt
Tradução automática
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

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com