01. Database

[xml] 오라클 CLOB 데이터 화면에 뿌려주기

devamy 2024. 6. 27. 10:41

오라클의 CLOB 데이터형은 보통 글자 수가 너무 길 때 사용한다.


select 쿼리문을 사용하는 화면을 만들 때,
(예를 들어) long_text(컬럼명)라는 CLOB 데이터를 가져왔다.

 

Select long_text from table;
을 했는데, 화면에는 ‘Oracle.~.~…‘이라는 문구만 떴다.

 

알고보니 자바에서는 varchar의 형태로 가져오므로 DB와 서로 데이터형이 안맞아서 그런 것이었다.

 

이럴 때는 쿼리문 앞에 'resultMap'이라는 태그를 사용하여 SQL 조회 결과를 반환하는 방식을 지정하면 해결된다.

jdbcType과 javaType을 각각 지정해주면 된다. 

jdbcType(테이블의 자료형)은 CLOB이겠고, javaType(자바의 자료형)은 String으로 가져오면 된다.

 


<resultMap id="리저트맵아이디" class="caseMap" >
<!-- 주의: 조회하고자 하는 모든 컬럼의 결과반환 방식을 지정해주어야 한다 -->
<result column="테이블의 컬럼명" property="자바의 속성명" 
jdbcType="테이블 자료형" javaType="자바의 자료형" />
...
<result column="long_text" property="long_text" jdbcType="CLOB" javaType="java.lang.String" />
...
</resultMap>

<!-- 조회 쿼리문 -->

<select id="쿼리아이디" parameterClass="caseMap" resultMap="리저트맵아이디">
SELECT AGE, NAME,,,, LONG_TEXT FROM TABLE
</select>