PROBLEMA: Consulta SQL Distributed com faz com que o Oracle "não foi possível abrir tabela" erro

Traduções de Artigos Traduções de Artigos
Artigo: 240340 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

A tentar utilizar uma consulta com um servidor ligado do Oracle utilizando o fornecedor MSDAORA OLE DB, por exemplo:
select * from OracleServer..demo.Product
				
poderá provocar um erro semelhante à seguinte:
Servidor: Erro 7306, nível de 16, estado 2, linha 1
Não foi possível abrir a tabela ' "demonstração". "Produto"' do fornecedor de OLE DB 'MSDAORA'. A tabela especificada não existe.
[Fornecedor OLE/DB devolvida a mensagem: A tabela especificada não existe]
[Fornecedor OLE/DB devolvida a mensagem: 00942 ORA: tabela ou vista não existe]

Causa

A consulta pode não funcionar devido à sensibilidade de maiúsculas e minúsculas no Oracle desde que o SQL Server utiliza nomes entre aspas quando-envia consultas a um fornecedor.

Como contornar

Utilize as seguintes regras quando fazer referência a tabelas de um servidor ligado do Oracle:
  • Se os nomes da tabela e das colunas criadas no Oracle sem identificadores entre aspas, utilize todos os nomes em maiúsculas. Por exemplo, o seguinte deverá funcionar OK:
    select * from OracleServer..DEMO.PRODUCT
    						
  • Se os nomes da tabela e das colunas foram criados no Oracle com identificadores entre aspas, utilize o mesmo formato para todas as letras dos nomes como foi utilizado quando os nomes criados no Oracle.
Distinção entre maiúsculas e minúsculas não constitui um problema quando utilizar a função AbrirConsulta ou OpenRowset. O seguinte deverá funcionar OK:
SELECT * FROM OPENQUERY(OracleServer, 'select * from PrOdUct')
go
SELECT * FROM OPENRowset('MSDAORA', 'myOracleServer';'demo';'demo', 'select * from PrOdUct' )
go
				

Mais Informação

Microsoft SQL Server versão 7.0 fornece a capacidade para efectuar consultas contra fornecedores OLE DB. Isto é conseguido utilizando as funções AbrirConsulta ou OpenRowset Transact-SQL ou utilizando uma consulta com quatro nomes de parte incluindo um nome de servidor ligado. 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 comportamento

  1. Configurar um servidor ligado ao 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 comunica o erro descrito na secção Sintomas.

REFERÊNCIAS

Para mais informações no SQL Server distributed consultas com origem de dados Oracle, consulte o tópico "OLE DB Provider para Oracle" SQL 7.0 Books Online e os seguintes artigos na base de dados de conhecimento da Microsoft:
220915PROBLEMA: Consulta distribuída SQL com Oracle necessita do cliente Oracle

221552PROBLEMA: O SQL Distributed consulta com o erro Oracle NUMERIC coluna indica

Propriedades

Artigo: 240340 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 240340

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