java.sql.SQLException: Missing defines Error When Reusing a Prepared Statement with JDBC Driver 12.1.0.1 (Doc ID 2078912.1)

Last updated on AUGUST 03, 2016

Applies to:

JDBC - Version 12.1.0.1.0 to 12.1.0.1.0 [Release 12.1]
Information in this document applies to any platform.

Symptoms

When using the 12.1.0.1 JDBC driver, reuse of a prepared statement (without any Oracle implicit or explicit caching mechanism) results in the following error:

java.sql.SQLException: Missing defines
at oracle.jdbc.driver.OracleStatement.checkAccessorsUsable(OracleStatement.java:844)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:882)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1034)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3820)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3867)
at oracle.jdbc.driver.OraclePreparedStatementWr apper.executeQuery(OraclePreparedStatementWrapper.java:1502)
at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:549)
at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:2600)

 

Example code for reproducing the problem is as follows (this code relies on the HR demo schema):

 

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