2012-04-23 18 views
0

as400表にデータを挿入するためにjdbc(jt400)を使用します。 dbテーブルコードページは424です。Host Code Page 424AS400 jdbc文字変換

ebcdic 424コードページでは、クライアントからの多くの文字がサポートされていません。 例えば、(Ascii 26 Hex 1A)

などの結果は、誤った変換になります。

サポートされていない文字を削除するツールボックスが組み込まれていますか?

答えて

0

異なるコードページを使用して、ccsid424物理ファイル上に論理ファイルを作成できます。 as/400では、キーワードCCSID(<num>)を追加することで、個々の列ごとに異なるコードページを持つ論理ファイルを作成することができます。 Unicodeの文字セットに設定することもできます。 UTF-16の場合はCCSID(1200)です。もちろん、物理ファイルは424コードページにある文字のみを格納することができますが、無効な文字charに置き換えられますが、そのように変換する方が良いでしょう。

が直接そのコードページを持つ列にコードページ424に含まれていない文字を格納する方法はありません(私は考えることができる唯一の方法は、複数の文字で何とかそれらをエンコードしているが、それはない可能性が高いあるものあなたがしたいのは、それが "解決する"よりも多くの問題をもたらすからです)。

あなたがそのシステムを支配していて、より大きな変更を加えることができれば、別の方法でそれをやり遂げることができます:別の名前の物理ファイルの新しいユニコード・バージョンを作成します(CCSID (1200)、それはあなたが/ 400 afaikとしてUTF-16を取得したのと同じくらいで、UTF-8は私の経験ではシステムのすべての部分でサポートされていません。以前のファイルから新しいファイルにすべてのデータを転送するより古いファイルを削除する(その前にはバックアップ!)、古い物理ファイルの名前で新しい物理ファイルに論理ファイルを作成するよりも。その論理ファイルでは、すべてのccsidを持つ列を1200から424に変更します。そのようにして、既存のプログラムは引き続きデータを処理できます。もちろん、ccsid 424のサブセットにないデータを挿入すると、論理ファイルに無効な文字が現れます。新しい論理ファイルを使用するすべてのプログラムを調べる必要があります。