ひよっこPGのブログ

主に、技術メモや英語たまにギター関連のことも書いているブログです。

仕事で困ったOracleの仕様

まず、一個目。

Oracleの場合

SQLのIN句内は1000個までが限界。
それ以上書くと
ORA-01795: リストに指定できる式の最大数は1000です。

このようなエラーメッセージが表示されます。

解決策は、複数回SQL流すか

INを使うのではなくEXSITSを使うといいみたいですね。

参考サイト

( Oracle ) 【解決】 比較演算子 IN句に1000件以上指定すると、エラーが発生 - サイト制作の豆知識

 

二つ目。

JavaJDBCSQL内の"?" にバインドする時には文字数制限がある。

文字数制限は、データベースキャラクタセットによって違う。


JA16SJISの場合2000バイトまで、

JA16EUCの場合1333バイトまでバインドすることが出来ます

Oracle Technology Network (OTN) Japan - 掲示板 : JDBCの文字列長制限について ...

これを調べるキッカケは、

今のジョブで

備考欄のテキストボックスがあってその最大入力文字数が2000文字なわけです。

その備考欄の境界値テストを行ってる時にエラーが起きたので調べました。