Передача строки даты в функцию в запросе ibatis - PullRequest
1 голос
/ 10 января 2012

Я передаю строку с датой в запрос 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 в функцию даты?.

Спасибо.

1 Ответ

2 голосов
/ 11 января 2012

вы можете попробовать, определив параметрMap.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...