Java NamedJdbcTemplate更新问题

Java NamedJdbcTemplate更新问题,java,database,oracle,spring-jdbc,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);

当使用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是一个整数,在Oracle中,数据类型是number,所以这里有什么问题。
请帮助我,谢谢

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

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

我已经定义了这个参数,我认为它是由“Cancel_times”引起的,对吗?

在您没有定义的参数中
:requestId
,除了删除
\n
@YCF\L很抱歉,我忘记了将此参数与Hanks联系起来以获取答案,但我不知道为什么要在此处删除。\n是否有删除的原因?当尝试将字符串转换为数字时,会发生ORA-01722错误,并且该字符串无法转换为数字。在没有看到表定义的情况下,看起来您正试图将值列表末尾的数字序列转换为数字,而分隔它的空格引发了此错误。但是根据您给我们的信息,它可能发生在任何字段上(第一个字段除外)。下面是我的表define
create table XXSTT\u AUTO\u CANCEL\u REQ\u STATUS(自动取消状态ID号非空主键、请求ID号、取消状态号、取消次数号、取消消息VARCHAR2(256)、最新标志VARCHAR2(8)、创建日期日期日期、上次修改日期日期、取消请求SOAP VARCHAR2(1024))
你说得对,我在创建表时犯了一个错误