Error to Send Three Arrays Using setPlsqlIndexTable() Method From Java to Stored Procedure (Doc ID 360405.1)

Last updated on AUGUST 03, 2016

Applies to:

JDBC - Version: 10.1.0.2 to 10.1.0.3 - Release: 10.1 to 10.1
Information in this document applies to any platform.

Symptoms

When running a Java program that is passing arrays to a database stored procedure then following error occurs:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -29696
at oracle.jdbc.driver.T4CTTIrxd.marshal(T4CTTIrxd.java:330)
at oracle.jdbc.driver.T4C8Oall.marshalBinds(T4C8Oall.java:1150)
at oracle.jdbc.driver.T4C8Oall.marshalAll(T4C8Oall.java:817)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:177)
at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:783)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1028)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2888)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:2979)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4103)
at PruebaArray.main(PruebaArray.java:59)

This happens only when using a JDBC Thin Driver 10.1.0.2.0 and the number of records in the array exceeds a certain number of records. In this situation the number of records in the array is 4608. When using 600 records everything works fine.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms