My Oracle Support Banner

Ora-08103 Is Thrown When Program Calls "Callablestatement.Getobject(1)" To Retrieve The Cursor (Doc ID 1362699.1)

Last updated on MARCH 08, 2017

Applies to:

PL/SQL - Version to [Release 10.2 to 11.2]
JDBC - Version to [Release 10.2 to 11.2]
Information in this document applies to any platform.
***Checked for relevance on 27-Jan-2014***


A Java application invokes a stored procedure that returns a cursor.
When the Java application tries to retrieve the ResultSet, an ORA-08103: object no longer exists is thrown.

CallableStatement callableStatement = c.prepareCall("begin stored_proc(?); end;");
callableStatement.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
ResultSet resultSet = (ResultSet) callableStatement.getObject(1);

java.sql.SQLException: ORA-08103: object no longer exists

at oracle.jdbc.driver.T4CTTIoer.processError(
at oracle.jdbc.driver.T4CTTIoer.processError(
at oracle.jdbc.driver.T4C8Oall.processError(
at oracle.jdbc.driver.T4CTTIfun.receive(
at oracle.jdbc.driver.T4CTTIfun.doRPC(
at oracle.jdbc.driver.T4C8Oall.doOALL(
at oracle.jdbc.driver.T4CStatement.doOall8(
at oracle.jdbc.driver.T4CStatement.fetch(
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(
at oracle.jdbc.driver.OracleResultSetImpl.<init>(
at oracle.jdbc.driver.T4CResultSetAccessor.getCursor(
at oracle.jdbc.driver.ResultSetAccessor.getObject(
at oracle.jdbc.driver.OracleCallableStatement.getObject(
at oracle.jdbc.driver.OracleCallableStatementWrapper.getObject(


To view full details, 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 a vibrant support community of peers and Oracle experts.