Using Non-Default Constructor with SQL Object Type Fails With "Inconsistent java and sql object types"

(Doc ID 2360186.1)

Last updated on FEBRUARY 15, 2018

Applies to:

JDBC - Version to [Release 11.2 to 12c]
Information in this document applies to any platform.


Given the following scenario:

* Using a SQL object type
* Using an associated array of that type
* After the fact, a new attribute is added to that object type
* A non-default constructor is created to give the option of filling in a default value for that new attribute.

Working with that non-default constructor is successful when it is called directly from PL/SQL using SQL*Plus.
However, that non-default constructor fails with the following error when called from JDBC:

java.sql.SQLException: Inconsistent java and sql object types
at oracle.sql.StructDescriptor.toOracleArray(
at oracle.sql.StructDescriptor.toArray(
at oracle.sql.STRUCT.(
at oracle.jdbc.driver.PhysicalConnection.createStruct(
at com.db.stm.service.StateServiceImpl.createStateStruct(
at com.db.stm.service.StateServiceImpl.getStateStruct(
at com.db.stm.service.StateServiceImpl.populateOracleStruct(
at com.db.stm.service.StateServiceImpl.createStateRecordsStruct(

The problem reproduces with the,, and JDBC driver.




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