database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 10157 게시물 읽기
No. 10157
Postgresql의 프로시저에서 cursor 리턴에 대한 mybatis쪽의 정의는 어떻게 되나요?
작성자
권오준(whitesunday)
작성일
2020-05-06 17:06ⓒ
2020-05-06 17:33ⓜ
조회수
142

db를 postgresql 12 버전의 프로시저를 사용하고
어플리케이션은  java + spring + mybatis 를 사용합니다.

문제되는 부분이 프로시저에서 자바 쪽으로 넘겨야 될 데이터가
cursor 형태로 되어있는 경우에 자바 쪽으로 받아지지 안고 에러가 나옵니다.
기존에 oracle에서는 되었는데요. 오라클에서 했던 방식으로 기술하면 에러가 납니다.

현재 function에서 cursor를 넘길수가 있는데요 그렇게 되면
기존 어플리케이션의 자바쪽의 수정이 너무 많아
고려하지 않고 있습니다.

 

아래와 같이 프로시저와  mybatis에서 부분을  써 놓았는데요..

out변수는 총 3개이고 빨간색 변수가 커서가 됩니다.
프로시저의 cursor에서 받을 수 있는 방법이 있을까요? 

mybatis쪽에서 기술한 호출 방법이 잘못되었나요?

다르게 기술하는 방식이 있을까요?

 

 


 


 



 <mapper namespace="Login">
       <resultMap id="session" type="egovframework.rte.cmmn.ria.SessionVO" />

     < select id="select"  statementType="CALLABLE">
         {
               CALL TEST_GET_DATA_SINGLE(

                  1    
                  , #{_message      , mode=OUT, jdbcType=VARCHAR, javaType=String}
                  , #{_result_one    , mode=OUT, jdbcType=CURSOR , resultMap=session}  
                  , #{_returncode   , mode=OUT, jdbcType=VARCHAR, javaType=String}
                  )
            }

 < /select>
< /mapper>

   
     

 

 

 


<프로시저 부분 시작>


CREATE OR REPLACE PROCEDURE public.test_get_data_single(
 _itemid integer,
 INOUT _message character varying DEFAULT ''::character varying,
 INOUT _result_one refcursor DEFAULT 'rs_resultone'::refcursor,
 INOUT _returncode character varying DEFAULT ''::character varying)
LANGUAGE 'plpgsql'

AS $BODY$
 BEGIN
     _message := 'Test message for item ' || COALESCE(_itemID, 0);
     _returnCode := '';
 
  open _result_one for
     SELECT *
     FROM (values (1,2,3, 'fruit', current_timestamp - INTERVAL '5 seconds'),
                  (4,5,6, 'veggie', current_timestamp)) as t(a,b,c,d,e);
 
 END;
$BODY$;

이 글에 대한 댓글이 총 1건 있습니다.
[Top]
No.
제목
작성자
작성일
조회
10158pg_archivecleanup 은 어떻게 수행하세요? [1]
.test
2020-05-13
103
10157Postgresql의 프로시저에서 cursor 리턴에 대한 mybatis쪽의 정의는 어떻게 되나요? [1]
권오준
2020-05-06
142
10156Mysql 쿼리문인데 PostgreSQL로 변환하고 싶습니다. [1]
김씨
2020-04-21
260
10154EDB PAS 파티션테이블 트리거 생성이 가능한가요? [1]
story1472
2020-04-08
259
10153윈도우에서 Postgresql 9.6 에서 10버전으로 업그레이드 하는 방법이 있나요? [1]
CISSP
2020-04-07
283
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.069초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다