以下是我的程序签名:
PROCEDURE sp_trx(i_arr_Sust IN T_TAB_SUST,
o_locator_map OUT SYS_REFCURSOR,
o_pkid_map OUT SYS_REFCURSOR,
o_error OUT VARCHAR2)
下面是我在过程中的参考光标:
OPEN o_locator_map FOR
SELECT c_uuid,
c_id,
r_locator,
TO_CHAR(cj_creation_date, g_dt_format) c_date,
TO_CHAR(cj_last_modified_date, g_dt_format) cj_last_modified_date,
version_number
FROM tmp_locator_map;
以下是oracle中的数据类型:
c_uuid-->VARCHAR2(50 BYTE), c_id--> NUMBER, r_locator--> VARCHAR2(10 BYTE)
以下是我的Java过程:
String insertStoreProc = "{call PKG_LOADER.sp_trx(?,?,?,?)}";
CallableStatement callableStatement = con.prepareCall(insertStoreProc);
callableStatement.setObject(1, returninParam, 2003);
callableStatement.registerOutParameter(2, OracleTypes.CURSOR);
callableStatement.registerOutParameter(3, OracleTypes.CURSOR);
callableStatement.registerOutParameter(4, java.sql.Types.VARCHAR);
callableStatement.execute();
Object obj_recordLoc = callableStatement.getObject(2);
ResultSet rset =((OracleCallableStatement) callableStatement).getCursor(2);
while (rset.next()){
String c_uuid = rset.getString(1);
}
现在的问题是我在rset.next()得到下面提到的异常:
java.sql.SQLException: ORA-08103: 对象不再存在
请建议。提前致谢