Spring 批次:SQL 错误 ORA-01858:在需要数字的地方发现了非数字字符
Spring Batch: SQL error ORA-01858: a non-numeric character was found where a numeric was expected
我正在尝试在我的 spring 批次 reader 中使用这个 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 的值作为 '07-Oct-16 12:38:58.000000109 PM' 来自使用 jdbctemplate 的 tasklet,因此 SQL 抛出以下错误:ORA-01858:在需要数字的地方发现了非数字字符。
仅供参考,ces.PGM_BGN_DT 列是日期类型。我尝试了 TO_DATE 函数,但没有用。有什么建议吗?
据我了解latest.completed.startTime - 是一串字符。
它看起来像 oracle 时间戳数据类型。
如果我的建议是真的,你应该使用格式将字符串转换为时间戳
to_timestamp(latest.completed.startTime, 'dd-mon-yy HH12:MI:SS.FF AM');
我正在尝试在我的 spring 批次 reader 中使用这个 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 的值作为 '07-Oct-16 12:38:58.000000109 PM' 来自使用 jdbctemplate 的 tasklet,因此 SQL 抛出以下错误:ORA-01858:在需要数字的地方发现了非数字字符。
仅供参考,ces.PGM_BGN_DT 列是日期类型。我尝试了 TO_DATE 函数,但没有用。有什么建议吗?
据我了解latest.completed.startTime - 是一串字符。 它看起来像 oracle 时间戳数据类型。 如果我的建议是真的,你应该使用格式将字符串转换为时间戳
to_timestamp(latest.completed.startTime, 'dd-mon-yy HH12:MI:SS.FF AM');