2010-12-28 34 views
1

Oracle 11gR2ゲートウェイを介してSql Server 2005に接続しようとしていますが、Sql Serverからデータを取得するビューを問い合せると、 エラー:ORA-28500:[Oracle] [ODBC SQL Server Driver]文字列データ、右切り捨て Oracleで実行されている問合せの一部の列をコメント化しています。コメント付きの列はVARHCAR(30)のデータ型にありますが、VARCHAR(30)以外のフィールドもあります。エラー:ORA-28500:[Oracle] [ODBC SQL Server Driver]文字列データ、右切り捨て

これらの3つの列を追加してすべてのクエリに失敗した場合、すべてがOKになりますが、データソースであるSql Server 2005で実行されているビューでこれらのフィールドの名前を変更しようとしました結果。

ODBCとSQL Serverの両方のドライバがインストールされていますが、SQL Serverドライバ "dg4msql"を使用しています。 OracleのcharsetはAL32UTF8です。

は、あなたの懸念のために

よろしくをありがとう、

Kayhan YUKSEL

答えて

0

この最も可能性の高い原因は、これらの列は、Oracleが店舗に複数のバイトを使用する文字が含まれていることです。ゲートウェイは、列がSQL ServerでVARCHAR(30)として定義されているので、OracleではVARCHAR2(30)列を作成しますが、ここで(30)は30バイトではないため、データの切り捨てを取得できますOracleが使用するバイトの総数は30を超えています(つまり、SQL Serverでは30文字ですが、Oracleでは2バイトが必要なため、長さは31になります)。

回避策として、SQL ServerのVARCHAR(30)列をNVARCHAR(30)に変更します。ゲートウェイは、マルチバイト文字を取得し、列定義をNVARCHARとして変換して挿入を許可する可能性があることを認識します。

列がどのように翻訳されるかの詳細については、Gateway Data Type Conversion Table for 11gR2を参照してください。

+0

真実ですが、Navision ERPデータベースであるため、SQL Serverで石を移動することはできません。 –