1. 오류 

Cause: org.xml.sax.SAXParseException; lineNumber: 424; columnNumber: 95; 요소 콘텐츠는 올바른 형식의 문자 데이터 또는 마크업으로 구성되어야 합니다.

또는

Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 424; columnNumber: 95; 요소 콘텐츠는 올바른 형식의 문자 데이터 또는 마크업으로 구성되어야 합니다.

 

2. 발생 원인

 

MyBatis 사용을 위한 .xml 파일에서 부등호 사용 시(<, >) 발생하는 에러

예시)

SELECT
        CUST_NO  

FROM CUSTOMER
WHERE GROUP_ID = T1.CGROUP_ID AND ROWNUM < 2

. . .

생략

 

3. 해결 방법

 

(1)단일 처리

-부등호를 <![CDATA[ '부등호' ]]> 이 안에 넣는다.

예시)

SELECT 
        CUST_NO 

FROM CUSTOMER
WHERE GROUP_ID = T1.CGROUP_ID AND ROWNUM <![CDATA[ < ]]> 2

. . .

생략

 

(2)다중 처리

-하나의 쿼리에 여러 개의 부등호가 들어가야 하거나, 부등호 상관없이 작업을 진행해야 할 때에는 sql 전체를

<![CDATA[  ]]>로 감싼다.

 

예시)

=> CDATA 안에 부등호가 없어도 상관없음

 

끝.
             UPDATE CMM_BBS_POST /* [com.symc.sdss.cmm.board.service.dao.generalBoard.updateLikeCnt] */
           SET LIKE_CNT = (SELECT (NVL(MAX(TO_NUMBER(LIKE_CNT)), 0) + 1) FROM CMM_BBS_POST WHERE BBS_ID = #{bbsId} AND NTT_ID = #{nttId})
         WHERE BBS_ID = #{bbsId}
           AND NTT_ID = #{nttId}
     ]]>
    
             UPDATE CMM_BBS_POST /* [com.symc.sdss.cmm.board.service.dao.generalBoard.updateLikeCnt] */
           SET LIKE_CNT = (SELECT (NVL(MAX(TO_NUMBER(LIKE_CNT)), 0) + 1) FROM CMM_BBS_POST WHERE BBS_ID = #{bbsId} AND NTT_ID = #{nttId})
         WHERE BBS_ID = #{bbsId}
           AND NTT_ID = #{nttId}
     ]]>
    

+ Recent posts