PRB: Распределенные запросы возврата ошибки 7356 с MSDAORA

Переводы статьи Переводы статьи
Код статьи: 251238 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

При изменении метаданных во время выполнения возникает следующее сообщение об ошибке:
Сервер: Сообщение 7356, уровень 16, состояние 1, строка 1
Поставщик OLE DB «msdaora» предоставил несогласованные метаданные для столбца.
Эта ошибка может возникать при использовании распределенных запросов в SQL Server, ссылающиеся на представление, если создать базовую таблицу из базы данных Oracle при следующих условиях:
  • Возможность принимать значение NULL не указан в инструкции CREATE TABLE. -и-

  • Создание первичного ключа, с помощью инструкции ALTER TABLE -и-

  • Создать представление, которое содержит первичный ключ.

Причина

IDBSchemaRowset::GetRowset Возвращает IS_NULLABLE значение true для DBSCHEMA_COLUMNS.

IColumnsInfo::GetColumnInfo в наборе строк возвращает DBCOLUMNFLAGS_ISNULL как FALSE.

Из-за этих несоответствий, распределенные запросы сбой с ошибкой 7356.

Поставщик OLE DB, Msdaora.dll, возвращает неверные данные, из-за неправильного метаданных, который возвращает Oracle.

Решение

Явно укажите допустимость значений NULL столбца инструкции CREATE TABLE.

Статус

Данное поведение является особенностью.

Дополнительная информация

Действия для воспроизведения поведения

Используйте следующие действия для воспроизведения проблемы:
  1. Создайте тестовую таблицу, с помощью следующего кода:
    CREATE TABLE MYDIST
          (GMI_ID  VARCHAR2(8)
          ,LAST_NAME VARCHAR2(20)
          ,FIRST_NAME VARCHAR2(20) )
    					
  2. Измените таблицу с помощью следующего кода:
       ALTER TABLE MYDIST
          ADD (CONSTRAINT MYDIST_PK PRIMARY KEY (GMI_ID))
    					
  3. Вставка данных в таблицу, с помощью следующего кода:
       INSERT INTO MYDIST VALUES ('test1','row','one')
       INSERT INTO MYDIST VALUES ('test2','row','two')
    					
  4. Создание с помощью этого представления:
       CREATE VIEW V_MYDIST1 AS
          SELECT GMI_ID FROM MYDIST
    					
  5. Создайте запись связанного сервера с помощью файла msdaora.dll и выполните следующий запрос:
    select * from <OracleLinkedServer>..<SchemaName>.V_MYDIST1
    					
    Запрос возвратит следующую ошибку:
    Сервер: Сообщение 7356, уровень 16, состояние 1, строка 1
    Поставщик OLE DB «msdaora» предоставил несогласованные метаданные для столбца. Метаданные были изменены во время выполнения.

Свойства

Код статьи: 251238 - Последний отзыв: 5 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 7.0 Standard Edition
Ключевые слова: 
kbmdacnosweep kboracle kbprb kbmt KB251238 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:251238

Отправить отзыв

 

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