2011-10-25 13 views
0

DB2が稼動しているサーバーにインポートする必要があるファイルを転送するJavaアプリケーションを実行しています。その後、Javaアプリケーションは、データベースへのJDBC接続を作成し、実行します:DB2 SYSPROC.ADMIN_CMDをデータベースのインポートに使用するときの文字セットの問題

CALL SYSPROC.ADMIN_CMD('import from <filename> of del modified by decpt, coldel; messages on server inert into <view>') 

私は何とかデータベースが格納されてADMIN_CMDを使用してファイルを(インポートするために使用するユーザーのデータベースのいずれかの文字セットにconencted思わ持っている問題を手順)。その問題は次のとおりです。 「Umlaute」は、このインポートによって迷惑になります。私は過去にこの種の問題を抱えていましたが、ソリューションは常にデータをインポートするユーザーのLC_CTYPEをde_DE.iso88591に設定することでした。

私はすでに問題の原因を除外しました: - データベースサーバ。 - JDBC接続(単にファイルから読み込むのではなくsqlコマンドを使って行を挿入しただけです)

私は今、DB2がファイルをインポートするためにどのユーザーを使用するのでしょうかADMIN_CMD。また、DB2の設定に何らかの形で接続することはできないと信じています。これは、他のすべての方法でデータを挿入、ロードすることができます。

はい、私はADMIN_CMDを使用する必要があります。 DB2コマンドラインツールは、パフォーマンスの悪夢..です

答えて

0

(正気のための)最善のアプローチ:

  1. 必ずすべてのオペレーティング・システム・ロケールがUTF-8
  2. ていることを保証しますUTF-8
  3. としてすべてのデータベースを作成します。
  4. UTF-8としてデータを処理しないすべてのアプリケーションを取り除きます。
  5. UTF-8を遵守していない開発者およびベンダーは、すべて虐殺されます。 100%が完了するまで、リンスしてすすいでください。

実際にはattempts to be smartの入力データを変換します(インポートコマンドは、基本的にデータを挿入句にパイプします。常にそのように処理されます)。私が与えたリンクは、基本原則の概要を説明し、試してみるためのいくつかのコマンドを提供します。また、同様のものにofficial explanationがあります。それに応じて、環境変数db2codepageを区切りデータファイルに対応させることができます。これは役立つはずです。また、IXF形式のエクスポートでは、すべてのファイルにエンコードされた関連情報が含まれているため、より効果的です。

0

ご回答いただきありがとうございます。

私はようやく私のJDBCに

MODIFIED BY CODEPAGE=1252 

を追加することによって、問題を修正 - ADMIN_CMDインポートコマンド。これは、dbが以前使用していたコードページの設定を上書きするようです。また、1252に設定されているので、データベースのデフォルトのコードページは問題ではないようです。ADMIN_CMDを使用してインポートするときにDB2が使用するLinux設定になる可能性が私が今考えることができます。

関連する問題