Получение исключения java.sql.SQLException: ORA-03115: неподдерживаемый сетевой тип данных или представление - PullRequest
0 голосов
/ 28 октября 2018

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

}

1 Ответ

0 голосов
/ 28 октября 2018

Попробуйте заменить строку

            callStatement.registerOutParameter("OUT_REPAIR_INFO", Types.REF);

на

            callStatement.registerOutParameter("OUT_REPAIR_INFO", oracle.jdbc.OracleTypes.CURSOR);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...