넥사크로 11 - 프로시저

송용준·2023년 8월 15일
0

프로시저를 통해 공통로직(함수)으로 만들어 둠으로써 계산할 값을 넘기면 원하는 로직의 결과 값(테이블 or 칼럼 or 성공/실패 등)만 받아올 수 있다.
대행업체 같은 느낌이다.

특이한 점이라고 하면 프로시저와 쿼리의 넘어가는 값과 가지고 오는 값의 갯수가 같아야 한다.
또 넘겨줄 값과 받아올 결과값이 한 프로시저안에 같이 들어가 있다.

쿼리

<select id="updateWF1100DaoM013" parameterType="HashMap" statementType="CALLABLE" resultType="HashMap">
	<![CDATA[ /* [WF1100Dao][updateWF1100DaoM013] 결재승인/재기안시 업무 프로시저 호출 - M_WF_1100_M_UP13 */ ]]>
	EXEC S_WF_1100_03 #{PROC_NM}
	                 ,#{gvCommCd}
	                 ,#{WOFH_NO}
                     ,#{O_RET_CODE, mode=OUT, jdbcType=VARCHAR, javaType=java.lang.String}
                     ,#{O_RET_CMSG, mode=OUT, jdbcType=VARCHAR, javaType=java.lang.String};
                     
    SELECT #{O_RET_CODE} O_RET_CODE,#{O_RET_CMSG} O_RET_CMSG     	                 
</select>

프로시저

....
/*
   프로그램ID : S_WF_1100_03
   프로그램명 : 결재승인/재기안시 업무프로시저 호출
*/
ALTER PROCEDURE [dbo].[S_WF_1100_03] (
	@AS_PROC_NM NVARCHAR(200), /* 호출프로시저명 */
	@AS_COMM_CD NVARCHAR(10), /* 회사코드 */
	@AS_WOFH_NO NVARCHAR(20), /* 결재PID */
    @O_RET_CODE NVARCHAR(100) OUTPUT,  /* 처리결과코드 */
    @O_RET_CMSG NVARCHAR(MAX) OUTPUT  /* 처리결과메세지 */
)
....

WF1100Dao : XML 명
updateWF1100DaoM013 : XML안에 있는 update하는 쿼리 id
M_WF_1100_M_UP13 : 프로시저 명
PROC_NM, gvCommCd, WOFH_NO : 프로시저로 넘어가는 조건 값
O_RET_CODE : 프로시저 조건에 의한 연산 후 결과 값
O_RET_CMSG : 프로시저 조건에 의한 연산 후 결과 메시지

프로시저는 BEGIN, END, DECLARE, SET등을 이용해서 원하는 로직을 만들며 CRUD에 특화된 쿼리와 다르게 계산에 특화 되어있다.
프로시저에 대해 좀 더 학습이 필요하겠다.

profile
용용

1개의 댓글

comment-user-thumbnail
2023년 8월 15일

좋은 글이네요. 공유해주셔서 감사합니다.

답글 달기