java.sql.SQLException: Missing defines Error When Reusing a Prepared Statement with JDBC Driver

(Doc ID 2078912.1)

Last updated on AUGUST 03, 2016

Applies to:

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


When using the 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(
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(
at oracle.jdbc.driver.OraclePreparedStatementWr apper.executeQuery(
at oracle.jbo.server.QueryCollection.executeQuery(
at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(


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



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