すがブロ

sugamasaoのhatenablogだよ

Date型とPreparedStatement解

 結局、追記の項目で書いた感じのやり方でDate型で受け渡せるようになったのだが、動的に1日前とかの計算をするのがとても面倒。んで……結局SQL文をTO_DATE関数でラッピングすることにしたorz
 ちなみに、ハマっていた最大の原因はSELECT句でのDATE型を表示する際にNVL関数を使用して、値が無かった場合は半角スペースへと変換しているところだった*1
つまり、先日の時点では

  • SQLの構文エラー → 実行時にSQLエラー
  • 構文は成功(ただし、検索内容によってSELECT句のNVL関数で半角スペースへの変換がおこる) → ORACLEエラー

となっていて、どっちに転んでもエラーになるようになっていたのだった。
Java側から見て成功していた場合はOracleエラーが表示されていたのに気づいた時は苦笑いするしかなかったのは言うまでもない。つまらないもので工数食ってしまった。。。

*1:DATE型の領域に半角スペースを表示させようとすると当然だがエラーになる