[재질문]ibatis 에서 프로시저 호출시 SYS_REFCURSOR 를 여러개 리턴 받을수 ..
- 작성자 :
- 강*국
- 작성일 :
- 2017-01-16 09:03:38
- 조회수 :
- 2,042
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요...
답변 주셔서 감사합니다..
답변에 주신 사이트는 문의전 제가 참고해서 테스트 해보으나 단건일 경우 커서가 제대로 넘어오는데..
여러개의 커서를 리턴받을때 잘 되지 않아서 문의 드렸습니다..
<resultMap id="map1" class="energy.common.TestVO">
<result column="emp_no" property="emp_no"/>
</resultMap>
<resultMap id="map2" class="energy.common.TestVO">
<result column="dept_code" property="dept_code"/>
</resultMap>
<parameterMap id="outProcedureMap" class="map" >
<parameter property="output1" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" resultMap="map1" />
<parameter property="output2" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" resultMap="map2" />
</parameterMap>
<procedure id="SYS2010.getMultiRs" parameterMap="outProcedureMap" >
<!-- <procedure id="SYS2010.getMultiRs" parameterMap="outProcedureMap" resultMap="map1"> -->
{
CALL TEST_PROC( ?, ?)
}
</procedure>
System.out.println("111 : " + selectByPk("SYS2010.getMultiRs", params.getMap())); -- return null
System.out.println("222 : " + list("SYS2010.getMultiRs", params.getMap()).size()); -- return 0
소스 코드입니다...
로그를 찍어보니 리턴값을 받질 못하는데요...
어느 부분이 잘 못되었는지 모르겠네요..
하나의 커서일 경우 procedure 태그에서 resultMap="map1" 을 지정하면 커서가 넘어오고
여러건일경우 resultMap="map1" 옵션을 빼면 넘어오지가 않는거 같습니다..
확부탁드리립니다..
답변 주셔서 감사합니다..
답변에 주신 사이트는 문의전 제가 참고해서 테스트 해보으나 단건일 경우 커서가 제대로 넘어오는데..
여러개의 커서를 리턴받을때 잘 되지 않아서 문의 드렸습니다..
<resultMap id="map1" class="energy.common.TestVO">
<result column="emp_no" property="emp_no"/>
</resultMap>
<resultMap id="map2" class="energy.common.TestVO">
<result column="dept_code" property="dept_code"/>
</resultMap>
<parameterMap id="outProcedureMap" class="map" >
<parameter property="output1" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" resultMap="map1" />
<parameter property="output2" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" resultMap="map2" />
</parameterMap>
<procedure id="SYS2010.getMultiRs" parameterMap="outProcedureMap" >
<!-- <procedure id="SYS2010.getMultiRs" parameterMap="outProcedureMap" resultMap="map1"> -->
{
CALL TEST_PROC( ?, ?)
}
</procedure>
System.out.println("111 : " + selectByPk("SYS2010.getMultiRs", params.getMap())); -- return null
System.out.println("222 : " + list("SYS2010.getMultiRs", params.getMap()).size()); -- return 0
소스 코드입니다...
로그를 찍어보니 리턴값을 받질 못하는데요...
어느 부분이 잘 못되었는지 모르겠네요..
하나의 커서일 경우 procedure 태그에서 resultMap="map1" 을 지정하면 커서가 넘어오고
여러건일경우 resultMap="map1" 옵션을 빼면 넘어오지가 않는거 같습니다..
확부탁드리립니다..
A
안녕하세요.
표준프레임워크 센터입니다.
selectByPK보다 queryForObject를 사용하여 확인 부탁드립니다.
해당 문의는 별도의 가이드가 준비되어 있지 않아 아래 링크를 참조 부탁 드립니다.
http://www.apachebookstore.com/confluence/oss/display/IBATIS/Oracle+REF+CURSOR+Solutions
감사합니다.
표준프레임워크 센터입니다.
selectByPK보다 queryForObject를 사용하여 확인 부탁드립니다.
해당 문의는 별도의 가이드가 준비되어 있지 않아 아래 링크를 참조 부탁 드립니다.
http://www.apachebookstore.com/confluence/oss/display/IBATIS/Oracle+REF+CURSOR+Solutions
감사합니다.