Java って CHAR 型と相性悪いんですねえ。
Java と Oracle の組み合わせのシステムでの話し。
AAA が CHAR(4) のフィールドだとして、そこに入っている 3桁のデータとマッチングさせようとすると、プログラム側で条件値に空白をパディングしてやらないといけないようで。
例えば、
AAA = 'ABC '
のように。
AAA = 'ABC'
じゃヒットしないんでやんの。
PHP や Perl では問題なくヒットするんで、JDBC ドライバのバグじゃないかという話が 1999年頃の掲示板にももう書かれているのですが、未だにこの仕様は変わっていないようで・・・
PreparedStatement を使う場合の問題のようですが。
おかげで、RTRIM(AAA)して 'ABC' でもヒットするようにするとか色々な話が出てきてて、仕様書大幅修正ってことになるかも。(今回の仕様書は SQL 文を仕様書内に書いてるんで)
ただでさえ盆休み返上で働いてるのになあ・・・きついなあ・・・(^^;
Java め・・・
コメントする