Spring Batch:SQL错误ORA-01858:找到了数字所在的非数字字符

时间:2016-10-07 09:07:24

标签: oracle jdbc spring-batch

我正在尝试在我的spring批处理阅读器中使用这个SQL。 SQL似乎有问题:

select DISTINCT ces.COR_ENBL_STG_ID 
from HBX_BATCH_COR_ENBL_STG ces 
Inner JOIN HBX_INDV_NEG_ACTION ina ON ces.INDV_ID=ina.INDV_ID 
where ces.DISP_PROCESSED_FLAG='Y'  
AND ina.NEG_ACTION_RUN_RSN_CD in('11054','11055','11065') 
AND ces.PGM_BGN_DT+90<'#{jobExecutionContext['latest.completed.startTime']}'

latest.completed.start.time 的值来自使用jdbctemplate的tasklet的'07 -Oct-16 12:38:58.000000109 PM',因此SQL抛出以下错误:ORA-01858:找到一个非数字字符,其中数字是预期的。

仅供参考 ces.PGM_BGN_DT 列是日期类型。我尝试过TO_DATE函数但它没有帮助。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

据我所知,latest.completed.startTime是一串字符。 它看起来像oracle timestamp数据类型。 如果我的建议是正确的,您应该使用格式将字符串转换为时间戳

to_timestamp(latest.completed.startTime, 'dd-mon-yy HH12:MI:SS.FF AM');