2010-12-31 21 views
0

私はibatisとoracleを使用しています。10. jdbcドライバはoracle.jdbc.driver.OracleDriverです。私がテーブルからデータを取り出すと、2つのスペース 'が追加されています。たとえばACTIVE_IND CHAR(1)という列があり、取得されたデータが「A」であるとします。CHAR値を取得中に末尾に余分なスペースがあります

これはすべてのCHARフィールドで発生していることに注意してください。余分なスペースは、常にCHARの長さの2倍です。たとえば、CHAR(14)の列がある場合、末尾に余分なスペースはありません。

これはシステムテスト環境でのみ発生しています。私たちのローカルデスクトップでは、同じojdbc14.jarと同じコードを使用して、余分なスペースはありませんでした。

システムテスト環境で唯一違うのはデータベースだと思います。それはいくつかの文字エンコーディングに関連していますか?それを変更するためにデータベースにいくつかの設定がありますか?

+0

Oracleは、1バイト文字セットまたは複数バイト文字セットを格納できます。 CHAR(1)はもはや説明的なものではなく... CHAR(1 CHAR)またはCHAR(1 BYTES)です。答えが最初で、文字セットが2バイトとして定義されている場合、割り当てられるスペースは2バイトです。 –

答えて

2

文字エンコードの問題とよく似ています。 - あなたは、Oracle DBの構成は(私は強くこれをお勧めしますあなたは-Dfile.encoding=UTF8または類似を使用してこれを設定することができます)あなたのアプリは各環境の下で実行されているエンコーディング何文字

  • 、それぞれの場合に

    1. をチェックして
  • 0

    正確に何が間違っていたかをあなたが指定した情報から完全に判断することはできません。列のエンコーディングに関しては、COLLATION SETTINGの影響を受けます。詳細は、次のリンクを参照してください。http://www.lessanvaezi.com/collation-in-oracle-using-nls_sort/