mybatis语句:
<if test="status!=null and status=='D' "> , PriorStatus = Status </if>
报错:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java.lang.NumberFormatException: For input string: "D" ### Cause: java.lang.NumberFormatException: For input string: "D" at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:79) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:447) at com.sun.proxy.$Proxy92.update(Unknown Source)
但是原先的代码'VCID'不报错
<when test="resclassid=='VCID'"> substr(resvalue,to_number(#{VCIDStartStrNum}),length(resvalue)-to_number(#{VCIDStartStrNum})) resvalue </when>
原因:'D'只有1位,被认为是char。'VCID'不止一位,认为是String。
解决:
<if test="status!=null and status== "D""> , PriorStatus = Status </if>