PROCEDURE

배고픈 징징이 ㅣ 2023. 1. 26. 14:50

1. 프로시저 선언부

CREATE OR REPLACE PROCEDURE DW_MANAGER.PUT_COUPON(
  IN_CM_SEQ IN VARCHAR2,   -- 회원키
  IN_TG     IN VARCHAR2,   -- 타겟쿠폰
  RTN_CODE  OUT VARCHAR2   -- 결과
) IS
  ......
BEGIN
  ......

 

쿼리에서 돌릴려면 OUT으로 선언된 파라미터를 받을 변수를 선언해줘야 한다.

 

2. 쿼리 실행

DECLARE 절을 사용해 변수를 선언 후 프로시저 실행

DECLARE
    rtnCode varchar2(10);
BEGIN 
	PUT_COUPON('0000000000010080', '000000025501', rtnCode);
	DBMS_OUTPUT.PUT_LINE('결과 : ' || rtnCode);
END;

 

3. Mybatis에서 실행

rtnCode를 받아야함으로 resultMap을 선언한다.

<resultMap id="rtnCode" type="String"></resultMap>
<select id="callAddCoupon" parameterType="CouponAddReqVO" statementType="CALLABLE">
	{ CALL PUT_COUPON(
			#{cmSeq, mode=IN, jdbcType=VARCHAR},
			#{tg, mode=IN, jdbcType=VARCHAR},
			#{rtnCode, mode=OUT, jdbcType=VARCHAR, resultMap=rtnCode})
	}
</select>
반응형

'Sql > - Oracle' 카테고리의 다른 글

Merge  (0) 2023.01.27