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

오류가

"준비를 성명 문자열 매개 변수 표시 문자의 잘못된 사용 CONTAINS"

이며, 그것은 대해 불평 날짜 함수 사용은 DAYS(DATE(#{batch_dt_ud}))입니다.
날짜 함수에 ibatis 문자열 매개 변수를 전달할 수 있습니까?

고맙습니다.

답변

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"