存在一个问题,当使用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,所以这里有什么问题。 请帮助我,谢谢
答案 0 :(得分:1)
请从已添加代码的代码中删除\n
。
答案 1 :(得分:1)
Map<String, Object> parameters = new HashMap<>();
parameters.put("requestId", requestId);
我已定义此参数,我认为它是由'Cancel_times'引起的,是对吗?