HOME >> Tips >> Microsoft SQL Server

リンクサーバーに SQLを実行するとエラー「7347」が発生する
 リンク サーバー 'TAB' の OLE DB プロバイダー 'OraOLEDB.Oracle' から、列 '[OraOLEDB.Oracle].<列名>' に必要なデータ長に一致しないデータが返されました。

2016/8/21
文書番号:20559

SQL Server から Oracle へ接続しているリンクサーバーに対して SQLを実行したところ以下のエラーが発生しました。

===========================================================
メッセージ 7347、レベル 16、状態 1、行 1
リンク サーバー '<リンクサーバー名>' の OLE DB プロバイダー 'OraOLEDB.Oracle' から、列 '[OraOLEDB.Oracle].<列名>' に必要なデータ長に一致しないデータが返されました。必要な (最大) データ長は 8 ですが、返されたデータ長は 6 です。
===========================================================

エラーになったリンクサーバーはプロバイダーに「Oracle Provider for OLE DB」を使用していました。

クリックで拡大

固定長の列を trim したら回避できた。といった情報もありましたが今回はうまくいきませんでした。

リンクサーバーのプロバイダーを「Microsoft OLE DB Provider for ORACLE」を使用するようにしたところ、今回の現象を回避できました。


クリックで拡大