본문 바로가기
프로그래밍/Web.

[Mybatis] 무제

by _Chavi 2020. 9. 29.

프로젝트 중에 발생한 자잘한 문제점 몇 가지를 기록합니다.

Application Version
Spring 4.2.4 Release
JAVA Oracle JDK 1.8.0_171
eGovFrame 3.7.0
Mybatis(DTD) 3.3.0(3.0)
JDBC OJDBC6-11.2.0.3

 

문제 1 - INSERT INTO... SELECT...
<insert id="insertSQL">
	INSERT INTO 
		TABLE_A
	SELECT
		*
	FROM
		TABLE_B
</insert>

=> ERROR : ORA-00933 : SQL COMMAND NOT PROPERLY ENDED

 

INSERT INTO... SELECT 구문을 INSERT 태그와 함께 사용 시 ORA-00933 오류가 발생합니다.

 

<update id="insertSQL">
	INSERT INTO 
		TABLE_A
	SELECT
		*
	FROM
		TABLE_B
</update>

=> OK!!

INSERT > UPDATE로 변경하여 해결했습니다.

 

문제 2 - Memory Leak
<insert id="insertSQL">
	INSERT INTO 
		TABLE_A (A, B, C)
	VALUES ('A', 'B', 'C')
</insert>

=> 심각: The web application [ROOT] created a ThreadLocal with key of type [oracle.jdbc.driver.AutoKeyInfo$1]...패키지 위치 및 SQL 생략...
	 but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.

 

INSERT 구문을 호출 후, 서비스(WAS) 종료 시에 Memory Leak에 관한 경고가 출력되었습니다.

 

<insert useGeneratedKeys="false" id="insertSQL">
	INSERT INTO 
		TABLE_A (A, B, C)
	VALUES ('A', 'B', 'C')
</insert>

=> OK!!

useGeneratedKeys="false"옵션 추가하여 해결했습니다.

 

댓글