P/L sql 질문입니다 0 1 1,065

by coffee [2012.10.31 11:05:51]



<procedure id="saveTerminal" parameterClass="map">
/*해지접수 처리*/
  DECLARE
    REC pkg_cm_wo.cancel_type;
    v_order_id TCMCT_OCTRT_INFO.ORDER_ID%TYPE;
    v_basic_prod_cd TCMCT_OCTRT_INFO.basic_prod_cd%TYPE;
    V_MSGCODE VARCHAR2(100);
    V_MESSAGE VARCHAR2(100);
  BEGIN
    rec.ctrt_id := #CTRT_ID#;
    rec.cust_id    := #CUST_ID#;
    rec.def_resn_cd    := #DEF_RESN_CD#;
    rec.rmrk_desc   := #MEMO#;

    rec.rcpt_id     := #RCPT_ID#;
    rec.term_hope_dt  := #WRK_HOPE_DTTM#;
    rec.instl_agnt     := #INSTL_AGNT#;
    rec.so_id   := #SO_ID#;
    rec.atrt_crr_id    := #ATRT_CRR_ID#;
    rec.atrt_emp_id := #ATRT_EMP_ID#;
    rec.regr_id     := #ATRT_ID#;

/*PCMCT_TERMINATE(rec, v_msgcode, v_message);*/
/*PCMCT_V10_TERMINATE(REC, v_MSGCODE, v_MESSAGE);   //해지가 된다.*/
PCMCT_V20_SET_UP_PROCESS_WT_R(#CTRT_ID#, #REGR_ID#, #ORDER_TP#,
#DEF_RESN_CD#, #WRK_HOPE_DTTM#, NULL,  v_order_id, #RCPT_ID#, #MEMO#,
V_MSGCODE,  V_MESSAGE);

SELECT BASIC_PROD_CD
  INTO v_basic_prod_cd
  FROM TCMCT_OCTRT_INFO
 WHERE ORDER_ID = v_order_id;

PCMCO_SEQ_RETURN_PARAM( v_order_id, #NEW_ORDER_ID, jdbcType=VARCHAR, mode=INPUT#);
PCMCO_SEQ_RETURN_PARAM(  v_basic_prod_cd, #NEW_PROD_CD, jdbcType=VARCHAR,mode=INPUT#);

PCMCO_RETURN_PARAM(V_MSGCODE, #MSGCODE, jdbcType=VARCHAR, mode=INPUT#);
PCMCO_RETURN_PARAM(V_MESSAGE, #MESSAGE, jdbcType=VARCHAR, mode=INPUT#);

END;
</procedure>


자바에서 이 프로시저를 호출할때 어떻게 해야하는지..
호출 되었는지 확인은 어떻게 하는지 모르겠습니다.
그리고 변수를 선언하고 사용시 사용되는 변수는 꼭 선언이 되야 하나요?
헤깔리네요
설명 좀 부탁드립니다.

by 아발란체 [2012.10.31 12:19:22]

여기는 DB QNA라
자바 개발자가 답을 주셔야 할 부분 같은데

iBatis 또는 MyBatis DAO쪽을 이해 하셔야 할 것 같습니다.
뎃글로 쉽게 설명 드릴 수 있는 부분은 아닌거 같아요.

프로시저를 DB에 정의하고 쓰는 것이라면 여기서 답을 드릴 수 있을 것 같은데
XML에 두고 DAO를 통해 쓰는 것인데 J2EE 개발 패턴에서 대해서 이해를 원하시는 것이라면
내용이 많아요.

JAVA로 일단 JDBC를 통해 DB 핸들링이 되신다면
그 다음에 MyBatis로 DB 핸들링 구조로 변경해보시면 올려주신 구문이 이해가실거에요.

구문에서
(id는 DAO에서 해당 XML 부분을 가지고 오기위한 고유 아이디 값이고요,
parameterClass="map"는 XML에 있는 질의어에 전달할 변수 데이타타입이고요,
map으로 되어 있는 것보니 자바 영역에서 Map 데이타 형태로 인자 값을 묶어서 XML 구문에 변수를
대입시키고 있네요. Map에 정의된 값들이 XML로 와서는 #..# 부분에 대입될거에요.

자바 영역에서 호출 방법은 여러가지가 있는데
한 DAO session 인스턴스를 얻어서, session.execute("saveTerminal", parameter); 형식으로 호출할수있어요.

저런 XML 구문이 있다는 것은 XML이 있는 워크스페이스에 호출하는 자바 소스도 있지 않을까 하는데.. >ㅅ<)/
아무튼 고생하시네요.. 주변에 자바 개발자 있다고 하면 도와달라고 해보세요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입