我正在使用 jdbcTemplate 将一些数据插入到 Oracle 数据库中。不幸的是我收到了这个错误:
java.sql.SQLSyntaxErrorException: ORA-01722: invalid Number
首先,我将字符串转换为 double :
Number number = nmFormat.parse(record[8]);
double doubleVLBalance = number.doubleValue();
之后:
String sqlSettlementBalance = "INSERT INTO STARR4.TBSETR_SETTLEMENT_BALANCE"+
"(DT_MOVEMENT,NU_CUSTOMER_REF, NU_MOD_CUSTOMER_REF,"+
"NU_HIERARCHICAL_NODE, CD_ACQUIRER, CD_PRODUCT,"+
"CD_BALANCE_TYPE, NU_CUSTOMER, VL_BALANCE, NU_CONTROL)"+
"VALUES ('" ...,'"+doubleVLBalance+"','"+sb.getNuControl()+"')";
jdbcTemplate.update(sqlSettlementBalance);
字符串record[8]的值为“-0.34”。有什么建议可以解决这个问题吗?
最佳答案
如果用引号将数字括起来,它就会变成字符串。删除引号。
String sqlSettlementBalance = "INSERT INTO STARR4.TBSETR_SETTLEMENT_BALANCE"+
"(DT_MOVEMENT,NU_CUSTOMER_REF, NU_MOD_CUSTOMER_REF,"+
"NU_HIERARCHICAL_NODE, CD_ACQUIRER, CD_PRODUCT,"+
"CD_BALANCE_TYPE, NU_CUSTOMER, VL_BALANCE, NU_CONTROL)"+
"VALUES ('" ...,"+doubleVLBalance+",'"+sb.getNuControl()+"')";
关于java - 插入负数 - ORA-01722,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44810640/