仕事で困ったOracleの仕様
まず、一個目。
Oracleの場合
SQLのIN句内は1000個までが限界。
それ以上書くと
ORA-01795: リストに指定できる式の最大数は1000です。
このようなエラーメッセージが表示されます。
解決策は、複数回SQL流すか
INを使うのではなくEXSITSを使うといいみたいですね。
参考サイト
( Oracle ) 【解決】 比較演算子 IN句に1000件以上指定すると、エラーが発生 - サイト制作の豆知識
二つ目。
JavaのJDBCでSQL内の"?" にバインドする時には文字数制限がある。
文字数制限は、データベースキャラクタセットによって違う。
JA16SJISの場合2000バイトまで、
JA16EUCの場合1333バイトまでバインドすることが出来ます
Oracle Technology Network (OTN) Japan - 掲示板 : JDBCの文字列長制限について ...
これを調べるキッカケは、
今のジョブで
備考欄のテキストボックスがあってその最大入力文字数が2000文字なわけです。
その備考欄の境界値テストを行ってる時にエラーが起きたので調べました。