오류 해결 방법
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>
이런식으로 입력을 하면 잘 될것이다.