오라클 패키지내의 프로시져 호출 문제
- 작성자 :
- 김*우
- 작성일 :
- 2015-03-02 11:53:19
- 조회수 :
- 2,133
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
오라클에 패키지를 생성하고 그 안에 프로시져를 생성하였습니다.
리턴 타입은 IN(String), OUT(String), OUT(String), OUT(CURSOR) 로 되어 있습니다.
<resultMap id="test" type="java.util.HashMap" />
<procedure id="selectTestProc" statementType="CALLABLE" parameterClass="spaceStatusVO">
{
CALL SPC_Q_TEST.test_pro(
#{selno, mode=IN, javaType=string},
#{err_code, mode=OUT, jdbcType=VARCHAR, javaType=string, resultMap=String},
#{err_msg, mode=OUT, jdbcType=VARCHAR, javaType=string, resultMap=String},
#{result, javaType=java.sql.ResultSet, jdbcType=CURSOR, mode=OUT, resultMap=test}
)
}
</procedure>
이렇게 작성을 하니
org.xml.sax.SAXParseException; lineNumber: 15; columnNumber: 54; "class" 속성이 필요하며 요소 유형 "resultMap"에 대해 지정되어야 합니다.
이런 에러가 발생 합니다.
무엇이 문제 인지 모르겠습니다.
리턴 타입은 IN(String), OUT(String), OUT(String), OUT(CURSOR) 로 되어 있습니다.
<resultMap id="test" type="java.util.HashMap" />
<procedure id="selectTestProc" statementType="CALLABLE" parameterClass="spaceStatusVO">
{
CALL SPC_Q_TEST.test_pro(
#{selno, mode=IN, javaType=string},
#{err_code, mode=OUT, jdbcType=VARCHAR, javaType=string, resultMap=String},
#{err_msg, mode=OUT, jdbcType=VARCHAR, javaType=string, resultMap=String},
#{result, javaType=java.sql.ResultSet, jdbcType=CURSOR, mode=OUT, resultMap=test}
)
}
</procedure>
이렇게 작성을 하니
org.xml.sax.SAXParseException; lineNumber: 15; columnNumber: 54; "class" 속성이 필요하며 요소 유형 "resultMap"에 대해 지정되어야 합니다.
이런 에러가 발생 합니다.
무엇이 문제 인지 모르겠습니다.
A
안녕하세요. 김대우님
procedure 에서 값을 받아오는 resultMap을 찾을 수 없어서 에러가 나는거 같습니다.
아래 코드를 참고해서, 작성 하시면 될꺼 같습니다.
<resultMap type="com.egovframe.CodeBean" id="codeResult">
<result property="cd" column="CD" javaType="string"/>
<result property="cdNm" column="CD_NM" javaType="string"/>
</resultMap>
<select id="geEgovCode" statementType="CALLABLE" parameterType="hashmap">
{ call EGOVTESTPACKAGE.getCodes
(
#{cd, mode=IN, jdbcType=VARCHAR, javaType=string},
#{result, mode=OUT, jdbcType=CURSOR, javaType=java.sql.ResultSet, resultMap=codeResult}
)
}
</select>
procedure 에서 값을 받아오는 resultMap을 찾을 수 없어서 에러가 나는거 같습니다.
아래 코드를 참고해서, 작성 하시면 될꺼 같습니다.
<resultMap type="com.egovframe.CodeBean" id="codeResult">
<result property="cd" column="CD" javaType="string"/>
<result property="cdNm" column="CD_NM" javaType="string"/>
</resultMap>
<select id="geEgovCode" statementType="CALLABLE" parameterType="hashmap">
{ call EGOVTESTPACKAGE.getCodes
(
#{cd, mode=IN, jdbcType=VARCHAR, javaType=string},
#{result, mode=OUT, jdbcType=CURSOR, javaType=java.sql.ResultSet, resultMap=codeResult}
)
}
</select>