PRB: Query distribuite di SQL con Oracle causa "Impossibile aprire tabella" Errore

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

240340
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sintomi
Tentativo di utilizzare una query con un server collegato Oracle utilizzando il provider di MSDAORA OLE DB, ad esempio:
select * from OracleServer..demo.Product				
potrebbe causare un errore analogo al seguente:
Server: Messaggio 7306, livello 16, stato 2, riga 1
Impossibile aprire la tabella ' "demo". "Prodotto"' dal provider OLE DB 'MSDAORA'. La tabella specificata non esiste.
[Provider OLE DB ha restituito il messaggio: la tabella specificata non esiste.]
[Provider OLE DB ha restituito il messaggio: ORA-00942: tabella o visualizzazione non esiste]
Cause
La query potrebbe non funzionare a causa di maiuscole e minuscole in Oracle SQL Server utilizza i nomi tra virgolette quando è disponibile la query a un provider.
Workaround
Utilizzare le regole seguenti quando si fa riferimento tabelle in un server collegato Oracle:
  • Se i nomi di tabella e di colonna sono stati creati in Oracle senza identificatori tra virgolette, è possibile utilizzare tutti i nomi di lettere maiuscoli. Ad esempio, le operazioni seguenti devono funzionare OK:
    select * from OracleServer..DEMO.PRODUCT						
  • Se i nomi di tabella e di colonna sono stati creati in Oracle con gli identificatori tra virgolette, è necessario utilizzare il caso stesso per tutte le lettere dei nomi è stato utilizzato quando i nomi sono stati creati in Oracle.
Distinzione tra maiuscole e minuscole non esistono problemi quando si utilizza la funzione OpenQuery o OpenRowset. Il seguente dovrebbe funzionare OK:
SELECT * FROM OPENQUERY(OracleServer, 'select * from PrOdUct')goSELECT * FROM OPENRowset('MSDAORA', 'myOracleServer';'demo';'demo', 'select * from PrOdUct' )go				
Informazioni
Microsoft SQL Server versione 7.0 consente di eseguire query sui provider OLE DB. Ciò avviene utilizzando le funzioni OpenQuery o OpenRowset Transact-SQL o una query con quattro nomi di parte, incluso un nome di server collegato. Ad esempio:
sp_addlinkedserver 'mylinkedserver', 'product_name', 'myoledbprovider', 'data_source','location', 'provider_string', 'catalog'SELECT * FROM OPENQUERY(mylinkedserver, 'select * from table1')				

Procedura per riprodurre il problema.

  1. Impostare un server collegato al server Oracle:
    EXEC sp_addlinkedserver   'OracleServer',  'Oracle',  'MSDAORA',  'myOracleServer'goEXEC sp_addlinkedsrvlogin 'OracleServer', 'FALSE', NULL, 'demo', 'demo'go						
  2. Specificare una query del nome di quattro parte:
    SELECT * FROM OracleServer..demo.Product						
    che segnala l'errore descritto nella sezione Sintomi.

RIFERIMENTI

Per ulteriori informazioni su SQL Server query distribuite con origine dati Oracle, vedere l'argomento "OLE DB provider per Oracle" nella documentazione in linea di SQL 7.0 e i seguenti articoli della Microsoft Knowledge Base riportato di seguito:
220915PRB: Query distribuite di SQL con Oracle richiede Client Oracle

221552PRB: SQL Distributed Query con errore di colonna NUMERIC Oracle fornisce

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 240340 - Ultima revisione: 02/23/2014 19:23:48 - Revisione: 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 KbMtit
Feedback