2016-10-07 6 views
0

私はこのバッチ・バッチ・リーダーでこのSQLを使用しようとしています。したがってjdbctemplateを使用してタスクレットから58.000000109 PM」と:38:の値はlatest.completed.start.time '07 - オクト16 12として来ているバッチ・バッチ:SQLエラーORA-01858:数値が予想された場所に数値以外の文字が見つかりました

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']}' 

:SQLは、問題を抱えているようですSQLは次のエラーをスローしています。ORA-01858:数値が予想された場所に数値以外の文字が見つかりました。

ちょうど参考列ces.PGM_BGN_DTは日付タイプです。私はTO_DATE機能を試しましたが、それは役に立ちませんでした。何か提案してください?

+0

latest.completed.startTimeのデータ時間は何をタイムスタンプするために文字列を変換するためのフォーマットを使用する必要がありますか?そして、あなたはTO_DATE()で何を試しましたか、私たちに見せてください。 –

+0

このエラーはjdbcドライバから来ており、春のバッチリーダーではなく、春のバッチリーダーの問題ではありません。クエリとデータを修正する必要があります。これら2つが役立つかどうかを確認してください。[SO_Q1](http://stackoverflow.com/questions/27425515/oracle-sql-to-date-to-timestamp-ora-01858-a-non-numeric-character-was-found- w)、[SO_Q2](http://stackoverflow.com/questions/29852389/getting-error-ora-01858-a-non-numeric-character-was-found-where-a-numeric-was) –

+0

@NghiaDo latest.completed.startTimeはタイムスタンプ値です。私は日付であるpgm_bgn_dtと比較する必要がありました。問題はバッチが値を置き換えて一重引用符の中に保持した後に文字列として取得していたためです。私はto_timestampを使っていましたが、今は比較しています。 –

答えて

0

私はlatest.completed.startTimeを理解しています - 文字列です。 そして、その外観はoracle timestampデータ型のようです。 私の提案に該当する場合、あなたは

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

こんにちは@マイケルPiankovは助けてくれてありがとう。バッチパラメータlatest.completed.startTimeは、シングルクォーテーションのために値に置き換えられた後、文字列として来ていました。私はto_timestampを使用していましたが、今は比較しています。どうもありがとう :) –

関連する問題