我将一个日期字符串传递给用于比较的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}
错误为
"要准备的语句字符串包含对参数标记的无效使用"
并且抱怨CCD_ 1的日期函数使用
我可以不将ibatis字符串参数传递给日期函数吗?。
Thanx。
您可以尝试定义一个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"