Java-процедура:
CREATE OR REPLACE PACKAGE pkg_name is
TYPE REF_CURSOR IS REF CURSOR;
PROCEDURE p_fetch_unprocessed_repair (
IN_OUT_BULK_ID IN OUT NUMBER,
IN_PUBLISH_STATUS IN CHAR,
out_from_date OUT VARCHAR2,
out_to_date OUT VARCHAR2,
out_repair_info OUT REF_CURSOR,
out_error_cd OUT VARCHAR2
) ;
END;
Блок кода Java для вызова хранимой процедуры.
try {
CallableStatement callStatement= conn.prepareCall("{call PKG_NAME.p_fetch_unprocessed_repair(?,?,?,?,?,?)}");
conn.setAutoCommit(false);
callStatement.setFetchDirection(ResultSet.FETCH_FORWARD);
callStatement.setFetchSize(props.getDbBatchSize());
callStatement.registerOutParameter("IN_OUT_BULK_ID", Types.NUMERIC);
if(null != bulkID && StringUtils.isNotBlank(bulkStatus)){
callStatement.setInt("IN_OUT_BULK_ID", bulkID);
}
callStatement.setString("IN_PUBLISH_STATUS", bulkStatus);
callStatement.registerOutParameter("OUT_FROM_DATE", Types.VARCHAR);
callStatement.registerOutParameter("OUT_TO_DATE", Types.VARCHAR);
callStatement.registerOutParameter("OUT_REPAIR_INFO", Types.REF);
callStatement.registerOutParameter("OUT_ERROR_CD", Types.VARCHAR);
Boolean hadResults = callStatement.execute();
} catch(exception e ) {
}