오라클의 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>
'01. Database' 카테고리의 다른 글
[오라클] 사용자 이름 앞에 c## 안쓰려면 이것을 입력 (0) | 2024.06.27 |
---|---|
[DBeaver] 디비버-오라클 데드락(deadlock) 해제법 (0) | 2024.06.27 |
[iBatis 2.0] if-else 조건문 사용법 (0) | 2024.06.27 |
[SQL][Oracle] 엑셀다운로드 시간 단축했던 법 공유 (0) | 2024.06.20 |
[Oracle/오라클] Left outer join과 Left join의 차이? (0) | 2024.06.19 |