[프로시저 해결] Procedure Update 오류 Caused by: java.sql.SQLException: 부적합한 SQL 유형입니다: sqlKind = UNINITIALIZED

Juno·2023년 3월 23일
0

오류 해결 방법
Caused by: java.sql.SQLException: 부적합한 SQL 유형입니다: sqlKind = UNINITIALIZED

이 오류는 뇌피셜로 얘기하자면 VO문제이다.

Procedure

create or replace PROCEDURE "UPDATE" 
(
   id IN VARCHAR2,
   name IN VARCHAR2,
   email IN VARCHAR2
)
IS
BEGIN
  UPDATE IAM_USER
		SET NAME = name, 
			EMAIL = email
		WHERE USER_ID = id;
    COMMIT;
END UPDATE;

이런식으로 한다음 돌려보면 오류가 난다.

하지만,

create or replace PROCEDURE "UPDATE" 
(
   id IN VARCHAR2,
   name2 IN VARCHAR2,
   email2 IN VARCHAR2
)
IS
BEGIN
  UPDATE IAM_USER
		SET NAME = name2, 
			EMAIL = email2
		WHERE USER_ID = id;
    COMMIT;
END UPDATE;

이런식으로 2나 컬럼명이랑 다르게 입력을 하면 잘 된다.

이유는 잘 모르겠지만 컬럼명과 파라미터로 받는 변수명이 같으면 안되기 때문이다.

그럼 iBatis에서는

<procedure id="Update" parameterClass="VO">
	<![CDATA[
		{ CALL UPDATE(#id#,#name2#,#email2#)}
	]]>
</procedure>

이런식으로 입력을 하면 잘 될것이다.

profile
Developer :)

0개의 댓글