Java Spring MVC中的Oracle查询无法正常运行

时间:2017-09-11 06:29:24

标签: java sql spring oracle ibatis

<select id="BBSManageDAO.selectBbsSchdulManageList" parameterClass="BoardVO" resultMap="schdulProgramList">
<![CDATA[
SELECT NTT_ID, BBS_ID, NTT_NO, NTT_SJ, SUBSTR(NTT_CN,1,100) NTT_CN, CATEGORY, FRST_REGIST_PNTTM, NTCE_BGNDE, NTCE_ENDDE
,FIELD1, EVN_END_DATE, FIELD2, TELL_NO, USE_AT
FROM TN_BBS A
WHERE 1=1
AND A.USE_AT = 'Y'
AND (
BBS_ID = 'education01_main' or BBS_ID = 'course01_main' or
BBS_ID = 'feestival01_main' or BBS_ID = 'reading01_main'
    )
 ]]>
<isNotEmpty property="searchCondition2">
<isEqual property="searchCondition2" compareValue="DAILY" prepend="AND">
<![CDATA[ #searchSdate# >= FIELD1 AND #searchSdate# <= EVN_END_DATE ]]>
</isEqual>
isEqual property="searchCondition2" compareValue="WEEK" prepend="AND">
<![CDATA[ (#searchBgnDe# <= FIELD1 AND #searchEndDe# >= FIELD1) OR (#searchBgnDe# <= EVN_END_DATE AND #searchEndDe# >= EVN_END_DATE) OR (#searchBgnDe# >= FIELD1 AND #searchEndDe# <= EVN_END_DATE) AND USE_AT='Y']]>
</isEqual>
</isNotEmpty>
<![CDATA[   
 ORDER BY FIELD1 ASC
]]>
</select>

这是我SQL_Oracle.xml

内部代码的一部分

如果文章符合条件(条件是约会日期),此查询是关于选择某些事件的文章。

我有两个API。一个是每天,另一个是每周。

在每日查询中,用户会发送一个特定日期(#searchSdate#)作为参数,并在当天发送数据库搜索事件。

在每周用户中发送一周,以便他们向服务器提供一周的开始日期和一周的结束日期,并发回该周的事件。

问题是我写了

WHERE 1=1  
AND A.USE_AT = 'Y'  

当我使用WEEK搜索时,他们会向我发送带有'N'USE_AT数据的事件 我不在乎DAILY是否向我发送了相同的数据。但他们没有 最后,当我将 AND USE_AT='Y'添加到他们工作的WEEK搜索结束时。

但我仍然不知道为什么我的ibatis语法会出现一些错误。

有谁知道这是什么问题?

1 个答案:

答案 0 :(得分:0)

上面的查询可能存在问题。尝试使用或比较OR比较中包含的所有问题来修改查询:如下所示

( (#searchBgnDe# <= FIELD1 AND #searchEndDe# >= FIELD1) 
 OR (#searchBgnDe# <= EVN_END_DATE AND #searchEndDe# >= EVN_END_DATE) 
 OR (#searchBgnDe# >= FIELD1 AND #searchEndDe# <= EVN_END_DATE) )
 AND USE_AT='Y'

您的SQL_Oracle.xml文件也有xml问题,因为第二个isEqual未正确标记