PRB: Verteilte Abfragen zurückgeben Fehler 7356 mit MSDAORA

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: 251238
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Problembeschreibung
Wenn Metadaten zur Ausführungszeit geändert wird, tritt der folgende Fehler auf:
Server: Msg 7356, Ebene 16, Status 1, Zeile 1
OLE DB-Provider 'MSDAORA' hat inkonsistente Metadaten für eine Spalte übergeben.
Dieser Fehler kann auftreten, wenn Sie verteilte Abfragen in SQL Server, die eine Sicht verweisen verwenden, wenn Sie die zugrunde liegende Tabelle in Oracle unter folgenden Bedingungen erstellen:
  • Geben Sie keinen NULL-Zulässigkeit in CREATE TABLE-Anweisung an. -und-

  • Sie erstellen einen Primärschlüssel mit der ALTER TABLE-Anweisung - und -

  • Sie erstellen eine Ansicht, die PRIMARY KEY enthält.
Ursache
IDBSchemaRowset:: GetRowset für DBSCHEMA_COLUMNS zurückgegeben IS_NULLABLE als TRUE.

IColumnsInfo:: GetColumnInfo für das Rowset zurückgegeben DBCOLUMNFLAGS_ISNULL als falsch.

Wegen dieser Unterschiede, verteilte Abfragen schlagen fehl mit Fehler 7356.

Der OLE DB-Provider Msdaora.dll, gibt falsche Informationen zurück, da die Metadaten, die Oracle zurückgibt falsch ist.

Lösung
Geben Sie die NULL-Zulässigkeit der Spalte explizit während der CREATE TABLE-Anweisung.
Status
Es handelt sich hierbei um ein beabsichtigtes Verhalten.
Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

Verwenden Sie diese Schritte, um das Verhalten zu reproduzieren:
  1. Erstellen Sie die Test-Tabelle mithilfe dieses Codes:
    CREATE TABLE MYDIST      (GMI_ID  VARCHAR2(8)      ,LAST_NAME VARCHAR2(20)      ,FIRST_NAME VARCHAR2(20) )					
  2. Ändern die Tabelle, die mithilfe dieses Codes:
       ALTER TABLE MYDIST      ADD (CONSTRAINT MYDIST_PK PRIMARY KEY (GMI_ID))					
  3. Fügen Sie Daten in die Tabelle mithilfe dieses Codes:
       INSERT INTO MYDIST VALUES ('test1','row','one')   INSERT INTO MYDIST VALUES ('test2','row','two')					
  4. Mithilfe dieser Ansicht erstellen:
       CREATE VIEW V_MYDIST1 AS      SELECT GMI_ID FROM MYDIST					
  5. Erstellen Sie einen Verbindungsserver-Eintrag mit der Datei "msdaora.dll und Ausführen die folgende Abfrage:
    select * from <OracleLinkedServer>..<SchemaName>.V_MYDIST1					
    die Abfrage gibt diesen Fehler zurück:
    Server: Msg 7356, Ebene 16, Status 1, Zeile 1
    OLE DB-Provider 'MSDAORA' hat inkonsistente Metadaten für eine Spalte übergeben. Metadateninformationen wurde zur Ausführungszeit geändert.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 251238 – Letzte Überarbeitung: 12/05/2015 18:16:33 – Revision: 3.2

Microsoft OLE DB Provider for Oracle Server 1.0, Microsoft OLE DB Provider for Oracle Server 1.0, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 7.0 Service Pack 1

  • kbnosurvey kbarchive kbmt kbmdacnosweep kboracle kbprb KB251238 KbMtde
Feedback