[ 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.HashMap" resultClass="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> |
|