오라클

프로시져.INSERT 또는 UPDATE

사라링 2012. 10. 15. 10:38

<procedure id="tmSaveProj" parameterClass="map">

DECLARE

V_CNT NUMBER;

BEGIN

SELECT COUNT(*)

 INTO V_CNT

 FROM BUS_AGRMT_MST

WHERE PROJ_PLAN_NO = #PROJ_PLAN_NO#

  AND PROJ_PLAN_SEQ = #PROJ_PLAN_SEQ#

  AND PART_SHAPE = #CHRG_PART_ORG_SHAPE#

  AND PART_ORG_NO = #CHRG_PART_ORG_NO#;


IF V_CNT = 0 THEN

INSERT INTO BUS_AGRMT_MST (

PROJ_PLAN_NO,

PROJ_PLAN_SEQ,

PART_SHAPE,

PART_ORG_NO,

RCPT_BK_CD,

RCPT_ACC_NO,

INS_ID,

INS_DT,

UPT_ID,

UPT_DT

)VALUES(

#PROJ_PLAN_NO#,

#PROJ_PLAN_SEQ#,

#CHRG_PART_ORG_SHAPE#,

#CHRG_PART_ORG_NO#,

#IN_BK_CD#,

#IN_BK_ACC_NO#,

#SESS_USER_ID#,

SYSDATE,

#SESS_USER_ID#,

SYSDATE

);

ELSE

UPDATE BUS_AGRMT_MST

  SET RCPT_BK_CD = #IN_BK_CD#,

RCPT_ACC_NO = #IN_BK_ACC_NO#,

UPT_ID = #SESS_USER_ID#,

UPT_DT = SYSDATE

WHERE PROJ_PLAN_NO = #PROJ_PLAN_NO#

  AND PROJ_PLAN_SEQ = #PROJ_PLAN_SEQ#

  AND PART_SHAPE = #CHRG_PART_ORG_SHAPE#

  AND PART_ORG_NO = #CHRG_PART_ORG_NO#;

END IF;

END;

</procedure>





// V_CNT 가 0 이라면 값이 없음으로. INSERT 를 하며 1 이상이면 값이 기존에 있음으로 UPDATE 를 실행