Oracle-17132 при передаче символа из хранимой функции - PullRequest
0 голосов
/ 08 октября 2018

У меня проблема с моей StoredFunction.Это выглядит тривиально, но я не вижу способа это исправить.

БД Oracle содержит функцию со следующей сигнатурой и некоторым простым телом

FUNCTION  MY_FUNC (CARD_NUM_IN in char, CARD_ID number default null) 
return number;

Я выполняю вызов функции какследующим образом:

SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(dataSource);
SqlParameterSource sps = new MapSqlParameterSource()
        .addValue("CARD_NUM_IN", ' ', OracleTypes.CHAR)
        .addValue("CARD_ID", Long.parseLong(cardId), OracleTypes.NUMBER);
simpleJdbcCall
        .withFunctionName("MY_FUNC")
        .withCatalogName(PACKAGE_NAME);

Object  result = simpleJdbcCall.executeFunction(Object.class, sps);

Результат:

 java.sql.SQLException: ORA-17132 Invalid conversion requested

Если я удаляю параметр Char из своей функции и прекращаю его передачу, сохраненная функция работает как положено.

Какя должен передать Char (изменение сигнатуры функции невозможно)?

...