[ myBatis.oracle.sql.CLOB@  결과 오류시 ]



 

오라클 함수중 WM_CONCAT()  함수를 사용하면 기본적으로 VARCHAR type으로 return한다.
그런데,  결과값이 너무 길 경우 오라클은 CLOB type으로 return하게 되고,
myBatis, JAVA에서는 CLOB type이 없기 때문에 최종결과는 "oracle.sql.CLOB@  ..."와 
같은 오류값이 RETURN 된다.

해결방법 : 원래 clob type을 string으로 변환하는 Mybatis 구문이 있지만 이상하게 
                 WM_CONCAT()함수 결과 컬럼에 대해서는 적용되지 않는다.
                그래서 TO_CHAR( WB_CONCAT(. ... ) ) 와 같아 . TO_CHAT()함수로 묶어 준다.
                문약, TO_CHAR()함로도 안되면  TO_CHAR(SUBSTR(컬럼명, 1, 2000)) AS 컬럼명
                과 같이 SUBSTR(0함수도 사용하면 된다.

<sqlMap namespace="BPPA0080">
    <
select id="selectShopList"  parameterClass="java.util.HashMapresultClass="java.util.HashMap" >
        SELECT /* BPPA0080.shopList */
              AREA2_CLS_CD
            , AREA2_CLS_NM
            , SHOP_CLS_NM
            , TO_CHAR(SUBSTR(BEF_YY_LIST, 1, 4000)) AS BEF_YY_LIST
            , TO_CHAR(SUBSTR(NEXT_YY_OPEN_LIST, 1, 2000)) AS NEXT_YY_OPEN_LIST
          FROM TABLE_NAME
    </
select>
</
sqlMap>

 


'Web. 기타 언어 > myBatis' 카테고리의 다른 글

myBatis. if. case 문  (0) 2017.12.05
myBatis에서 foreach 사용하기  (0) 2017.06.09
myBatis.CLOB Column type  (0) 2017.01.31
myBatis.SQL문 안에서 <, > 사용  (0) 2017.01.31
myBatis.xml Tag  (0) 2017.01.31
Posted by 농부지기
,