PRB: クエリの戻り値エラー 7356 を使用してください配布します。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:251238
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
実行時にメタデータ情報を変更すると、次のエラーが発生します。
サーバー: メッセージ 7356、レベル 16、状態 1、行 1
OLE DB プロバイダー 'MSDAORA' は一貫性のないメタデータが列を指定します。
Oracle では、次の条件の下で、基になるテーブルを作成する場合は、ビューを参照する分散クエリでは、SQL Server を使用する場合このエラーが発生する可能性があります。
  • CREATE TABLE ステートメントでは null 値の許容を指定しません。- と -

  • ALTER TABLE ステートメントを使用して主キーを作成します。- と -

  • 主キーが含まれるビューを作成します。
原因
IDBSchemaRowset::GetRowset IS_NULLABLE DBSCHEMA_COLUMNS は TRUE を返します。

IColumnsInfo::GetColumnInfo DBCOLUMNFLAGS_ISNULL、行セットに対して FALSE を返します。

これらのための分散クエリが失敗エラー 7356 の不一致。

Oracle の返すメタデータが誤っている場合、Msdaora.dll、OLE DB プロバイダーは誤った情報を返します。

解決方法
CREATE TABLE ステートメントで、列の null 値の許容を明示的に指定します。
状況
この動作は仕様です。
詳細

現象の再現手順

現象を再現するのには、次の手順を使用します。
  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 - 最終更新日: 12/05/2015 18:16:37 - リビジョン: 7.0

  • kbnosurvey kbarchive kboracle kbprb kbmdacnosweep kbmt KB251238 KbMtja
フィードバック