我在我们的 oracle jdbc 驱动程序中遇到了一个奇怪的异常。本机方法如何抛出 OutOfBounds 异常?我认为它与其中一列中的 blob 有关。
我们使用 solaris x86、sun java 6、websphere 作为我们的服务器。数据库是 oracle 11 和 ojdbc 5。
使用我在 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();
但我不认为问题出在 java 代码中,因为相同的代码在带有 ojdbc14 和 sparc solaris 的 java 5 上确实有效。我想它更多的是配置。