PRB: SQL verteilter Abfragen mit Oracle verursacht "konnte nicht geöffnet Tabelle" Fehler

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 240340 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Versuch, eine Abfrage mit einem verknüpften Oracle-Server unter Verwendung des MSDAORA OLE DB-Anbieters, z. B. zu verwenden:
select * from OracleServer..demo.Product
				
verursachen einen Fehler der folgenden ähnelt:
Server: Fehlermeldung 7306, Ebene 16, Status 2, Zeile 1
Konnte Tabelle nicht öffnen ""Demo"."Produkt"" von OLE DB-Provider 'MSDAORA'. Die angegebene Tabelle ist nicht vorhanden.
[OLE-DB-Provider meldete: die angegebene Tabelle ist nicht vorhanden]
[OLE-DB-Provider meldete: ORA-00942: Tabelle oder Sicht ist nicht vorhanden]

Ursache

Die Abfrage funktioniert möglicherweise nicht aufgrund der Groß-und Kleinschreibung in Oracle seit SQL Server Namen in Anführungszeichen, verwendet wenn er Abfragen an einen Provider ausgeliefert wird.

Abhilfe

Verwenden Sie die folgenden Regeln, wenn Tabellen in einer Oracle-Verbindungsserver verweisen:
  • Wenn die Tabellen- und Spaltennamen in Oracle ohne Bezeichner in Anführungszeichen erstellt wurden, verwenden Sie alle Großbuchstaben Namen. Beispielsweise sollte die folgenden OK arbeiten:
    select * from OracleServer..DEMO.PRODUCT
    						
  • Wenn die Namen der Tabelle und Spalte in Oracle mit Bezeichnern erstellt wurden, verwenden Sie dieselbe Groß-/Kleinschreibung für alle Buchstaben der Namen, als verwendet wurde, wenn die Namen in Oracle erstellt wurden.
Groß-/Kleinschreibung ist ein Problem nicht, wenn OpenQuery oder OpenRowset-Funktion verwenden. Sollte die folgenden OK funktionieren:
SELECT * FROM OPENQUERY(OracleServer, 'select * from PrOdUct')
go
SELECT * FROM OPENRowset('MSDAORA', 'myOracleServer';'demo';'demo', 'select * from PrOdUct' )
go
				

Weitere Informationen

SQL Server, Version 7.0 bietet die Möglichkeit, Abfragen für OLE DB-Provider durchzuführen. Dies erfolgt mithilfe von OpenQuery oder OpenRowset Transact-SQL-Funktionen oder in eine Abfrage mit vier Teilnamen einschließlich einen verknüpften Server-Namen. Zum Beispiel:
sp_addlinkedserver 'mylinkedserver', 'product_name', 'myoledbprovider', 'data_source','location', 'provider_string', 'catalog'
SELECT * FROM OPENQUERY(mylinkedserver, 'select * from table1')
				

Schritte zum Reproduzieren des Verhaltens

  1. Richten Sie einen verknüpften Server zu Oracle-Server:
    EXEC sp_addlinkedserver   'OracleServer',  'Oracle',  'MSDAORA',  'myOracleServer'
    go
    EXEC sp_addlinkedsrvlogin 'OracleServer', 'FALSE', NULL, 'demo', 'demo'
    go
    						
  2. Angeben einer vierteiligen Namensabfrage:
    SELECT * FROM OracleServer..demo.Product
    						
    der meldet des Fehlers, die im Abschnitt PROBLEMBESCHREIBUNG beschrieben.

Informationsquellen

Weitere Informationen auf SQL Server finden Sie unter verteilte Abfragen mit Oracle-Datenquelle, das SQL 7.0-Onlinedokumentation Thema "OLE DB Provider für Oracle" und den folgenden Artikeln der Microsoft Knowledge Base:
220915PRB: SQL Distributed Query mit Oracle erforderlich Oracle Client

221552PRB: SQL Distributed Query mit Oracle NUMERIC-Spalte verursacht Fehler

Eigenschaften

Artikel-ID: 240340 - Geändert am: Sonntag, 23. Februar 2014 - Version: 4.2
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbnosurvey kbarchive kbmt kbdatabase kboracle kbprb KB240340 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 240340
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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