My Oracle Support Banner

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

Last updated on AUGUST 01, 2019

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):




To view full details, sign in with your My Oracle Support account.

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

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.