NamedJdbcTemplate更新问题

时间:2018-04-16 08:50:43

标签: java database oracle spring-jdbc

存在一个问题,当使用namedJdbcTemplate将数据插入Oracle时,出现问题并且异常是

"ORA-01722: invalid number
; nested exception is java.sql.SQLSyntaxErrorException: ORA-01722: invalid number"

我的代码是:

parameters.put("cancelMessage", message);
parameters.put("cancelStatus", cancelStatus);
parameters.put("requestSOAP", requestSOAP);
parameters.put("cancelTimes", Integer.valueOf(cancelTimes));
String newSql = "insert into XXSTT_AUTO_CANCEL_REQ_STATUS (AUTO_CANCEL_STATUS_ID, REQUEST_ID, CANCEL_STATUS, CANCEL_TIMES, CANCEL_MESSAGE,\n" +
                "                                          LATEST_FLAG, CREATE_DATE, LAST_MODIFIED_DATE, CANCEL_REQUEST_SOAP)\n" +
                "values (XXSTT_AUTO_CANCEL_REQ_STATUS_S.nextval, :requestId, :cancelStatus, :cancelTimes, :cancelMessage, 'Y', sysdate,\n" +
                "        sysdate, :requestSOAP)";
namedJdbcTemplate.update(newSql, parameters);

cancelTimes是一个int号,在Oracle中,数据类型是Number,所以这里有什么问题。 请帮助我,谢谢

2 个答案:

答案 0 :(得分:1)

请从已添加代码的代码中删除\n

答案 1 :(得分:1)

Map<String, Object> parameters = new HashMap<>();
parameters.put("requestId", requestId);

我已定义此参数,我认为它是由'Cancel_times'引起的,是对吗?