Oraclejdbcドライバーで奇妙な例外が発生します。ネイティブメソッドはどのようにしてOutOfBounds例外をスローできますか?いずれかの列のブロブと関係があると思います。
サーバーとしてsolarisx86、sun java 6、websphereを使用します。データベースは、oracle11とojdbc5です。
Windows XPを使用したローカル構成では、すべてが正常に機能します。
何か案は?
java.lang.ArrayIndexOutOfBoundsException
at oracle.jdbc.driver.T2CStatement.t2cDefineFetch(Native Method)
at oracle.jdbc.driver.T2CPreparedStatement.doDefineFetch(T2CPreparedStatement.java:1020)
at oracle.jdbc.driver.T2CPreparedStatement.fetch(T2CPreparedStatement.java:1252)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:373)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:277)
コードでは、特別なことは何もしていません。プリペアドステートメントを作成し、パラメータを入力してクエリを実行します。
preparedStatement = connection.prepareStatement(queryAsString);
preparedStatement.setObject( [some paramters...] );
ResultSet result = preparedStatement.executeQuery();
result.setFetchSize(100);
while (result.next()) {
int count = Fields.getFieldsCount();
Object[] objects = new Object[count];
for (int j = 0; j < count; ++j) {
Object object = result.getObject(j + 1);
objects[j] = object;
}
list.add(objects);
}
result.close();
しかし、同じコードがojdbc14とsparcsolarisを使用するJava5で機能したため、問題がJavaコードにあるとは思いません。私はそれがより構成的なものだと思います。