Невозможно определить правильную подпись вызова для {имя процедуры} - ​​имя пакета должно быть указано отдельно, используя '.withCatalogName ("PARAMS")' - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть java код для выполнения процедуры сохранения, как показано ниже:

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = {SQLException.class, Exception.class })
public void executeSPForInsertData(DataSource ds,String procedureName,Map<String, Object> inputParameter){
    //PARAMS.PKG_PARA_UPLD_VAL.PR_SP_FAHMI
    String[] inParam = inputParameter.keySet().toArray(new String[0]);
    SqlParameterSource in = new MapSqlParameterSource().addValue("P_T_TABLE_UPLD_EXCEL",inputParameter);

    SimpleJdbcCall jdbcCall = new SimpleJdbcCall(paramsDataSourceBean)
                              .withProcedureName(procedureName);

    String[] path = procedureName.split(".");
    if (path.length >= 2) {
        jdbcCall.withSchemaName(path[0]);
        jdbcCall.withCatalogName(path[1]);
        jdbcCall.withProcedureName(path[2]);
    }
    Map<String,Object> outputParameter = jdbcCall.execute(in);
}

При запуске появляется эта ошибка

org.springframework.dao.InvalidDataAccessApiUsageException: Unable to determine the correct call signature for PARAMS.PKG_PARA_UPLD_VAL.PR_SP_FAHMI - package name should be specified separately using '.withCatalogName("PARAMS")'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...