2012-01-09 153 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} 

錯誤是

「聲明STRING要準備包括參數設置標誌物的無效使用」

,它是抱怨日期功能用法DAYS(DATE(#{batch_dt_ud}))
我可不能將ibatis字符串參數傳遞給日期函數嗎?

Thanx。

回答

2

你可以嘗試通過定義一個parameterMap。

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

您的查詢將是這樣的:

<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> 

我在做,你返回一個字符串的假設resultType="string"

相關問題