2012-01-09 21 views
1

比較のために使用されるibatisクエリに日付文字列を渡しています。しかし、私はエラーを取得していますibatisクエリの関数に日付文字列を渡す

SELECT PATIENT_SUFFIX_NM, 
     INTRPT_CLM_TXT, 
     DAYS(DATE(#{batch_dt_ud})) - DAYS(INTRPT_CLM_ENTR_TS) AGE_OF_CLAIM 
FROM INTERRUPTED_CLAIM 
WHERE KEYER_ID=#{keyer_id} 

エラーが

「準備するステートメント・ストリングにはパラメーター・マーカーの使用は無効です含む」

あり、それは文句を言っています日付機能の使用はDAYS(DATE(#{batch_dt_ud}))です。
日付関数にibatis文字列パラメータを渡すことはできませんか?

Thanx。

答えて

2

parameterMapを定義して試すことができます。私はあなたが文字列resultType="string"

を返す仮定を作っています

<select id="QueryNameForCalling" parameterMap="ParameterMapName" resultType="string"> 
     SELECT PATIENT_SUFFIX_NM, 
     INTRPT_CLM_TXT, 
     DAYS(DATE(#{batch_dt_ud})) - DAYS(INTRPT_CLM_ENTR_TS) AGE_OF_CLAIM 
     FROM INTERRUPTED_CLAIM 
     WHERE KEYER_ID=#{keyer_id} 
</select> 

:あなたのクエリのようなものになります

<parameterMap id="ParameterMapName" type="ClassTypeOfHowYouPassParameters"> 
    <parameter property="keyer_id" mode="IN"/> 
    <parameter property="batch_dt_ud" jdbcType="DATE" mode="IN"/> 
</parameterMap> 

関連する問題