<select id="sql_select_getTimeRemindHandle" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
SELECT * FROM CMCC_MA_TIME_REMIND_HANDLE WHERE 
<isNotNull prepend="AND"  property="beginTime">
SPONSORS_TIME >= beginTime
</isNotNull>
<isNotNull prepend="AND"  property="endTime">
SPONSORS_TIME <=endTime
</isNotNull>
<isNotNull prepend="AND"  property="title">
TITLE like "%$title$%"
</isNotNull>
<isNotNull prepend="AND"  property="beginPerson">
SPONSORS like "%$beginPerson$%"
</isNotNull>
<isNotNull prepend="AND"  property="REMAIND_WAY">
REMAIND_WAY like "%$REMAIND_WAY$%"
</isNotNull>
<isNotNull prepend="AND"  property="zhouqi">
CYCLE_TYPE like "%$zhouqi$%"
</isNotNull>
</select>
查询的时候报错:
com.mdcl.mocha.exception.NPException: Error executing SQL. Execution failed at DALManager.retrieveList
  
--- The error occurred while applying a parameter map.  
--- Check the sql_select_getTimeRemindHandle-InlineParameterMap.  
--- Check the statement (query failed).  
--- Cause: java.sql.SQLException: ORA-00936: missing expression--- The error occurred while applying a parameter map.  
--- Check the sql_select_getTimeRemindHandle-InlineParameterMap.  
--- Check the statement (query failed).  
--- Cause: java.sql.SQLException: ORA-00936: missing expression
等等

解决方案 »

  1.   

    楼主你where直接写死了。如果你的所有条件都为null列?这个SQL是神马sql?有一种标签叫:<dynamic prepend="where">
      

  2.   

    楼主是用ibatis的动态标签有问题。
    如果你的所有<isnotnull/>标签的条件都不满足,你这个sql就变成了:
     SELECT * FROM CMCC_MA_TIME_REMIND_HANDLE WHERE --这个SQL我认为在任何数据库上执行都会失败
    言归正传,不过从你上面的异常信息看,问题应该不是这个。应该是这个问题:
    --- The error occurred while applying a parameter map.   
    1.你传入的parameterClass="java.util.HashMap"该map中有beginTime,endTime,title,beginPerson,REMAIND_WAY,zhouqi有执行key吗??
    2.此种写法不规范:
    <isNotNull prepend="AND"  property="beginTime">
            SPONSORS_TIME >= beginTime
            </isNotNull>
    改为:
    <isNotNull prepend="AND"  property="beginTime">
            SPONSORS_TIME <![CDATA[  >=  ]]>beginTime
            </isNotNull>
    3.所有like语句修改成:
     REMAIND_WAY like '%'||#REMAIND_WAY#||'%'
    最后,please test it again!
      

  3.   

    1.你传入的parameterClass="java.util.HashMap"该map中有beginTime,endTime,title,beginPerson,REMAIND_WAY,zhouqi有对应的key吗??