I want to insert date into my table column "updatedDate" which has date as column data type. I am using spring jdbctemplate for data persistence. I tried by passing column value as java.util.Date, java.sql.Date and also java.sql.Timestamp, but none of them is working. I am getting below error :
java.sql.SQLDataException: ORA-01858: a non-numeric character was found where a numeric was expected
Below is my code for insert.
public void insert(
Hashtable<String, UploadError> errorCollection) {
try {
Set<String> keys = errorCollection.keySet();
for (String key : keys) {
UploadError contractUploadVO = errorCollection.get(key);
String contract_error_sql = "insert into TARIFF_LOG("
+ "ERR_MSG, JOB_ID, CRTD_DTT, CRTD_BY, Regn, UPDT_BY, UPDT_DTT) "
+ "values(:errorMsg, :jobId, :createdDate, :createUser, :region, :updatedBy, :updatedDate)";
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("errorMsg", contractUploadVO.getErrMsgSearch());
paramMap.put("jobId", contractUploadVO.getJobIDSearch());
paramMap.put("createUser", contractUploadVO.getCreatedByUser());
paramMap.put("createdDate", "SYSDATE");
paramMap.put("region", contractUploadVO.getRegion());
paramMap.put("updatedBy", contractUploadVO.getUpdatedByUser());
paramMap.put("updatedDate", new java.sql.Date(contractUploadVO.getUpdatedDate().getTime()));
getNamedJdbcTemplate().update(contract_error_sql, paramMap);
}
} catch (Exception e) {
Logger.getInstance().fatalEvent(getClass(),"insert", e.getMessage(), e);
}
}
If I pass "SYSDATE" instead of "new java.sql.Date(contractUploadVO.getUpdatedDate().getTime())" in updatedDate then its working fine.
Please help me why I am getting ORA-01858:non-numeric character was found error ??