[FIX] SQL Server 7 Oracle の Numeric 列でエラー 7354 が発生する

文書翻訳 文書翻訳
文書番号: 243027 - 対象製品
この記事は、以前は次の ID で公開されていました: JP243027
BUG #: 36489 (SQLBUG_70)
BUG #: 18722 (SQLBUG_70)
BUG #: 47131 (SQLBUG_70)
すべて展開する | すべて折りたたむ

現象

MSDAORA OLE DB プロバイダを使った Oracle リンク サーバーを使用して、数値列を含むテーブルをクエリすると次のようなエラーがでます。
Server: Msg 7354, Level 16, State 1, Line 1 OLE DB provider 'MSDAORA'supplied invalid metadata for column 'columnname'. The data type is notsupported.
数値列が選択リストになくてもクエリは失敗します。

原因

数値データ型の列長を指定しない(精度なし、デフォルトなし、NULL はあり) 場合、精度と小数点部桁数のない数値データ型が Oracle では 255 までの精度を備えた可変長の数値で表されます。

回避策

回避策の詳細については、Microsoft Knowledge Base にある以下のアーティクルをご覧ください。
221552 [SQL]PRB: Oracle の NUMERIC 列で SQL 分散クエリはエラーをだす

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。この問題は Microsoft SQL Server version 7.0 Service Pack 2 で修正済みです。最新の SQL Server Service Pack のダウンロードおよびインストールの詳細については、次のマイクロソフト Web サイトを参照してください。

http://www.microsoft.com/japan/sql/prodinfo/previousversions/downloads/70/default.mspx

詳細

SQL Server 7.0 サービスパック 2(SP2) は上記の問題について修正されていますが、SP2 のセットアップでは、sp_columns_ex カタログストアドプロシージャの更新したバージョンがインストールされません。そのため、sp_columns_ex の呼び出しを行うと以下のエラーが発生します。
Server: Msg 515, Level 16, State 2, Procedure sp_columns_ex, Line 133
Cannot insert the value NULL into column 'DATA_TYPE', table'tempdb.dbo.#tmp_columns_XX'; column does not allow nulls. INSERT fails. The statement has been terminated.
この問題が発生した場合、SP2 にある INSTCAT.SQL を実行してください。このスクリプトの実行方法については SQL Server 7.0 Books Online の "How to Upgrade the Catalog Stored Procedures" をご覧ください。

SQL Server の数値型の精度があまりにも大きければ、オラクルの数値型は、可変長文字 (384) に変換されます。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 243027 (最終更新日 2000-04-17) を基に作成したものです。

プロパティ

文書番号: 243027 - 最終更新日: 2005年4月18日 - リビジョン: 1.2
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 7.0 Standard Edition
キーワード:?
kbbug kbfix number oledb データ型 KB243027
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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