제가 참여중인 프로젝트에서는 신규 기능 추가 시, 문제 대응을 빠르게 하기 위해 로그 테이블을 만들고, 로그를 조회하는 쿼리를 짜놓고 조회하는 방식으로 모니터링을 하고 있습니다.
그러나 기능이 여러 개 추가되면서, 조회해야 하는 쿼리의 수가 많아지다 보니, 이것을 한 번에 볼 수 있도록 모니터링 쿼리를 관리하고 싶어졌습니다.(단순 쿼리 조회가 아닌, 변수도 입력해서)
그래서 parameter를 포함한 쿼리를 저장하기 위해 CLOB 타입으로 테이블을 만든 뒤, 조회를 했으나, 실제 저장된 텍스트가 아닌, oracle.sql.CLOB@XXXXXXX 라는 내용으로 조회가 되었습니다.
해당 문제에 대한 해결 방법은 아래와 같습니다.
해결 방법: sqlMap안에 <resultMap>을 정의한 뒤, <select> 태그의 resultMap 속성을 정의한 resultMap으로 해준다.
주의 사항: resultMap이 아닌 resultClass로 속성을 넣을 경우, oracle.sql.CLOB@XXXXX로 조회가 된다.
<resultMap class="java.util.HashMap" id="resultMap1">
<result property="QUERY_TEXT" javaType="java.lang.String" jdbcType="CLOB" />
</resultMap>
<select id="SELECT00" parameterClass="java.util.HashMap" resultMap="resultMap1">
'Database > Oracle' 카테고리의 다른 글
ORA-00600 내부 오류 코드 트러블슈팅 (0) | 2022.01.27 |
---|