ORACLE數據庫查詢出現“元素內容必須由格式正確的字符數據或標記組成”錯誤解決辦法


今天在Mapper.xml文件寫查詢語句報了個奇怪的錯誤

Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 150; columnNumber: 44; 元素內容必須由格式正確的字符數據或標記組成。

元素內容必須由格式正確的字符數據或標記組成

當時我的代碼如下

<select id="selectCountToBeforeNight" resultMap="WeidufenxiMap">
SELECT * from ( select T2.SSLB as mc, count(SSLB) AS num from QB_T_SSRY_YJXX T1, QB_T_SSRY_JBXX T2
where T1.SFZH = T2.SFZH and T2.SSLB !='105'
<!-- AND #{start,jdbcType=TIMESTAMP} <![CDATA[<=]]> T1.YJSJ and T1.YJSJ <![CDATA[<=]]> #{end,jdbcType=TIMESTAMP} -->
GROUP BY T2.SSLB
ORDER BY num DESC) where ROWNUM <= 8
</select>

后來來網上查了下發現

 

原因 : Mapper.xml 文件里  < (小於)號 ,   >(大於)號 ,會被認為是括號,需要額外注意,

 

解決辦法 : 將 < 號換成  &lt;     > 號 換成&gt; 

 

<select id="selectCountToBeforeNight" resultMap="WeidufenxiMap">
SELECT * from ( select T2.SSLB as mc, count(SSLB) AS num from QB_T_SSRY_YJXX T1, QB_T_SSRY_JBXX T2
where T1.SFZH = T2.SFZH and T2.SSLB !='105'
<!-- AND #{start,jdbcType=TIMESTAMP} <![CDATA[<=]]> T1.YJSJ and T1.YJSJ <![CDATA[<=]]> #{end,jdbcType=TIMESTAMP} -->
GROUP BY T2.SSLB
ORDER BY num DESC) where ROWNUM &lt;= 8
</select>

問題解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM