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

Traduzione articoli Traduzione articoli
Identificativo articolo: 240340 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato archiviato. L?articolo, quindi, viene offerto ?così come è? e non verrà più aggiornato.
Espandi tutto | Chiudi tutto

In questa pagina

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

Proprietà

Identificativo articolo: 240340 - Ultima modifica: domenica 23 febbraio 2014 - Revisione: 4.2
Le informazioni in questo articolo si applicano 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
Chiavi: 
kbnosurvey kbarchive kbmt kbdatabase kboracle kbprb KB240340 KbMtit
Traduzione automatica articoli
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.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 240340
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

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