PreparedStatementのバインド変数の制限?
S2DaoからSQL Serverに対してクエリを実行した際に↓のような例外が発生しました。
com.microsoft.sqlserver.jdbc.SQLServerException: 着信の表形式のデータ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが不適切です。この RPC 要求に指定されたパラメータが多すぎます。最大数は 2100 です。
調査したところ、S2DaoのSQL文でIN句を使っていたところで、バインド変数として渡した配列のサイズが大きすぎたようです。
-- こんな感じにしていたらnamesが3000件とかだった。。 WHERE name IN /*names*/('aaa', 'bbb')
小分けにしてデータを取得してみたところエラーは発生しませんでした。
そもそもIN句のバインド引数が3000件というところに問題があるのかもしれませんが。。