我有一个对象列表,它们被设置为预备语句。我在列表中有一个时间戳值,因此检查instanceOf
条件和preparedStatement.setTimestamp
来设置值,但它正在抛出java.sql.SQLDataException: ORA-01858 a non-numeric character was found where a numeric was expected
。明确的投射是一个问题吗?
我的代码
int count = 1;
for (int j = 0; j < list.size(); j++) {
logger.info("column: "+count+ " value: "+list.get(j));
if(list.get(j) instanceof Timestamp) {
ps.setTimestamp(count, (Timestamp) list.get(j));
} else {
ps.setObject(count, list.get(j));
}
count++;
}
准备好的声明
insert into OPRS_ZONES(ZONE_ID,ZONE_CODE,ZONE_NAME,PLACE_ID,CORP_ID,CREATED_BY,CREATED_DATE,MODIFIED_BY,MODIFIED_DATE) values(?,?,?,?,?,?,?,?,?)
值
column: 1 value: 03.0
column: 2 value: 'HYDERABAD'
column: 3 value: 'HYDERABAD'
column: 4 value: 05231.0
column: 5 value: 01.0
column: 6 value: 01.0
column: 7 value: 2012-10-19 13:06:39.0
column: 8 value: 00.0
column: 9 value: NULL
我需要插入值
的表格结构CREATE TABLE OPRS_ZONES (
ZONE_ID NUMERIC(20,0)
, ZONE_CODE VARCHAR2(16)
, ZONE_NAME VARCHAR2(255)
, PLACE_ID NUMERIC(20,0)
, CORP_ID NUMERIC(20,0)
, CREATED_BY NUMERIC(20,0)
, CREATED_DATE DATE
, MODIFIED_BY NUMERIC(20,0)
, MODIFIED_DATE DATE
);
赞赏任何输入
由于