組織同步的解決方案Ultimus之部門同步

CREATE OR REPLACE PACKAGE BODY GROUPSYNC_DEPT is

FUNCTION GetDptLevel(P_level integer) RETURN integer IS
tmpVar integer;
BEGIN
   tmpVar :=10;
 if p_level =0 then  tmpVar :=60; end if;  
    if p_level =1 then  tmpVar :=50; end if;
    if p_level =2 then  tmpVar :=40; end if;
    if p_level =3 then  tmpVar :=30; end if;
    if p_level =4 then  tmpVar :=20;    end if;
   RETURN tmpVar;  
END GetDptLevel;

procedure HRM_ADDDEPT(P_DPT_ID in VARCHAR2, PDPT_ID in VARCHAR2,P_DPT_NAME in VARCHAR2,P_DPT_LEVEL IN NUMBER,P_USER IN VARCHAR2,ERRMSG out VARCHAR2)
is
V_COUNT_RECORD NUMBER;
P_BRH_ID varchar2(255) default 'FOXCONN';
DEPT_LEADER_POS_ID VARCHAR2(255);
P_POSID VARCHAR2(255);
P_POSNAME VARCHAR2(255);
ISSUBCHART NUMBER default 0;
P_OCGRADE integer;
begin
begin
DEPT_LEADER_POS_ID:=upper(trim(P_DPT_ID));
P_POSNAME:=TRIM(P_DPT_NAME)||'_主管';
  --2.check dpt_id
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM rf_dept WHERE RTRIM(DPT_ID) = RTRIM(P_DPT_ID);
  IF V_COUNT_RECORD != 0 THEN
       ERRMSG := 1;--'THE DPT_ID HAVE EXISTED,ADD FAULT';
    INSERT INTO UP_DEPT_LOGTOHR(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,MFLAG,ERRMSG,CREATE_USER,MAINT_USER)
      VALUES(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,1,ERRMSG,P_USER,P_USER);
     RETURN;
  END IF;
  --3.check pdpt_id
  IF PDPT_ID IS NOT NULL THEN
    SELECT COUNT(*) INTO V_COUNT_RECORD FROM RF_DEPT WHERE RTRIM(DPT_ID) = RTRIM(PDPT_ID);
    IF V_COUNT_RECORD = 0 THEN
         ERRMSG :=2;-- 'THE PDPT_ID HAVE NOT EXISTED,ADD FAULT';
     INSERT INTO UP_DEPT_LOGTOHR(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,MFLAG,ERRMSG,CREATE_USER,MAINT_USER)
       VALUES(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,1,ERRMSG,P_USER,P_USER);
       RETURN;
    END IF;
  END IF;
  --4.check DEPT_LEADER_POS_ID?
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM RF_POSITION WHERE RTRIM(pos_id) = RTRIM(DEPT_LEADER_POS_ID);
  IF V_COUNT_RECORD = 0 THEN
    IF PDPT_ID IS NULL THEN
 P_POSID:='FOXCONN';
 ELSE
 P_POSID:=TRIM(PDPT_ID);
 END IF;
ADDPOSITION(P_DPT_ID,P_POSID,P_POSNAME,NULL,ERRMSG);
IF ERRMSG IS not NULL THEN
errmsg:=3;--add position fault
  INSERT INTO UP_DEPT_LOGTOHR(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,MFLAG,ERRMSG,CREATE_USER,MAINT_USER)
  VALUES(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,1,ERRMSG,P_USER,P_USER);
RETURN;
END IF;
  END IF;
  --5.check DEPT_LEADER_POS_ID assign more dept
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM RF_DEPT WHERE RTRIM(dpt_leader_id) = RTRIM(DEPT_LEADER_POS_ID);
  IF V_COUNT_RECORD != 0 THEN
     ERRMSG :=4;-- 'THE DEPT_LEADER_POS_ID HAVE ALREADY ASSIGN';
    INSERT INTO UP_DEPT_LOGTOHR(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,MFLAG,ERRMSG,CREATE_USER,MAINT_USER)
      VALUES(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,1,ERRMSG,P_USER,P_USER);
     RETURN;
  END IF;
  --6.check DEPT_LEADER_POS_ID have more person
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM ARCHIVE.RF_EMPLOYEE WHERE RTRIM(pos_id) = RTRIM(DEPT_LEADER_POS_ID);
  IF V_COUNT_RECORD > 1 THEN
     ERRMSG := 5;-- 'THE DEPT_LEADER_POS HAVE ALREADY ASSIGNED TOO MANY PERSON';
    INSERT INTO UP_DEPT_LOGTOHR(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,MFLAG,ERRMSG,CREATE_USER,MAINT_USER)
      VALUES(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,1,ERRMSG,P_USER,P_USER);
     RETURN;
  END IF;
  --7.check brh_id
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM ARCHIVE.RF_BRANCH WHERE RTRIM(BRH_ID) = RTRIM(P_BRH_ID);
  IF V_COUNT_RECORD = 0 THEN
     ERRMSG :=6 ;--'THE BRANCH IS NOT EXISTS';
  INSERT INTO UP_DEPT_LOGTOHR(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,MFLAG,ERRMSG,CREATE_USER,MAINT_USER)
    VALUES(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,1,ERRMSG,P_USER,P_USER);
  return;
  END IF;
 
  P_OCGRADE := GetDptLevel(P_DPT_LEVEL);
  IF PDPT_ID IS NOT NULL THEN
    INSERT INTO archive.rf_dept(DPT_ID,BRH_ID,DPT_PDPT_ID,dpt_name,DPT_LEADER_ID,dpt_subchar,DPT_LEVEL) VALUES (P_DPT_ID,P_BRH_ID,PDPT_ID,P_DPT_NAME,DEPT_LEADER_POS_ID,ISSUBCHART,P_OCGRADE);
  ELSE
    INSERT INTO archive.rf_dept(DPT_ID,BRH_ID,DPT_PDPT_ID,dpt_name,DPT_LEADER_ID,dpt_subchar,DPT_LEVEL) VALUES (P_DPT_ID,P_BRH_ID,NULL,P_DPT_NAME,DEPT_LEADER_POS_ID,ISSUBCHART,P_OCGRADE);
  END IF;
  --ERRMSG := '';
  INSERT INTO UP_DEPT_LOGTOHR(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,MFLAG,ERRMSG,CREATE_USER,MAINT_USER)
  VALUES(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,1,ERRMSG,P_USER,P_USER);
    exception when others then
  errmsg:=10;--codes error
    INSERT INTO UP_DEPT_LOGTOHR(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,MFLAG,ERRMSG,CREATE_USER,MAINT_USER)
  VALUES(P_DPT_ID,PDPT_ID,P_DPT_NAME,P_DPT_LEVEL,1,ERRMSG,P_USER,P_USER);
  end;
end HRM_ADDDEPT;

PROCEDURE HRM_UPDATE_DEPT(P_DPT_ID IN VARCHAR2,P_DPT_NAME IN VARCHAR2,P_DPT_LEVEL IN NUMBER,N_PDPT_ID IN VARCHAR2,P_USER IN VARCHAR2,ERRMSG OUT VARCHAR2)
IS
V_COUNT_RECORD NUMBER;
V_OLD_DPTNAME VARCHAR2(255);
V_OLD_DPTLEVEL NUMBER;
V_POS_ID VARCHAR2(255);
O_PDPT_ID VARCHAR2(255) default null;
P_OCGRADE integer;
BEGIN

V_POS_ID:=TRIM(N_PDPT_ID);
IF V_POS_ID IS NULL THEN
V_POS_ID:='FOXCONN';
END IF;

IF P_DPT_ID IS NULL OR P_DPT_NAME IS NULL OR P_DPT_LEVEL IS NULL THEN
ERRMSG:=0;--THESE FIELD ARE NOT NULL
INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,2,ERRMSG,P_USER);
RETURN;
END IF;
--CHECK DEPT
 SELECT COUNT(*) INTO V_COUNT_RECORD FROM rf_dept WHERE RTRIM(DPT_ID) = RTRIM(P_DPT_ID);
IF V_COUNT_RECORD=0 THEN
ERRMSG:=1;--THIS DEPT HAVE NOT EXISTED
INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,2,ERRMSG,P_USER);
RETURN;
END IF;
select dpt_pdpt_id into o_pdpt_id from rf_dept where  RTRIM(DPT_ID) = RTRIM(P_DPT_ID);
IF N_PDPT_ID IS NOT NULL THEN
SELECT COUNT(*) INTO V_COUNT_RECORD FROM rf_dept WHERE RTRIM(DPT_ID) = RTRIM(N_PDPT_ID);
IF V_COUNT_RECORD=0 THEN
ERRMSG:=2;--THIS PDEPT HAVE NOT EXISTED
INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,2,ERRMSG,P_USER);
RETURN;
END IF;
END IF;
begin
SELECT COUNT(*) INTO V_COUNT_RECORD FROM rf_POSITION WHERE RTRIM(POS_ID) = RTRIM(V_POS_ID);
IF V_COUNT_RECORD=0 THEN
ERRMSG:=3;--THIS POS_ID HAVE NOT EXISTED
INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,2,ERRMSG,P_USER);
RETURN;
END IF;
SELECT DPT_NAME,DPT_LEVEL INTO V_OLD_DPTNAME,V_OLD_DPTLEVEL FROM RF_DEPT WHERE TRIM(DPT_ID)=TRIM(P_DPT_ID);
--IF N_PDPT_ID=O_PDPT_ID THEN
--UPDATE RF_DEPT  SET DPT_NAME=P_DPT_NAME,DPT_LEVEL=(40-P_DPT_LEVEL+40) WHERE TRIM(DPT_ID)=TRIM(P_DPT_ID);
--UPDATE RF_POSITION  SET POS_NAME=REPLACE(POS_NAME,TRIM(V_OLD_DPTNAME),TRIM(P_DPT_NAME)) WHERE TRIM(POS_ID)=TRIM(P_DPT_ID);
--ELSE

P_OCGRADE := GetDptLevel(P_DPT_LEVEL);
UPDATE RF_DEPT  SET DPT_NAME=P_DPT_NAME,DPT_LEVEL=P_OCGRADE,DPT_PDPT_ID=TRIM(N_PDPT_ID) WHERE TRIM(DPT_ID)=TRIM(P_DPT_ID);
UPDATE RF_POSITION  SET POS_NAME=REPLACE(POS_NAME,TRIM(V_OLD_DPTNAME),TRIM(P_DPT_NAME)),POS_PPOS_ID=TRIM(V_POS_ID) WHERE TRIM(POS_ID)=TRIM(P_DPT_ID);
UPDATE RF_POSITION  SET POS_NAME=REPLACE(POS_NAME,TRIM(V_OLD_DPTNAME),TRIM(P_DPT_NAME)) WHERE TRIM(POS_PPOS_ID)=TRIM(P_DPT_ID);
--END IF;
IF V_OLD_DPTLEVEL<>P_DPT_LEVEL THEN
UPDATE RF_EMPLOYEE SET OC_GRADE=P_OCGRADE WHERE TRIM(POS_ID)=TRIM(P_DPT_ID) AND TRIM(DPT_ID)=TRIM(P_DPT_ID);
UPDATE RF_EMP_POS_ADD SET OC_GRADE=P_OCGRADE WHERE TRIM(POS_ID)=TRIM(P_DPT_ID) AND TRIM(DPT_ID)=TRIM(P_DPT_ID);
END IF;
INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,2,ERRMSG,P_USER);
--DBMS_OUTPUT.put_line('ok');
  exception when others then
  errmsg:=10;--codes error
 INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,2,ERRMSG,P_USER);
  end;
END HRM_UPDATE_DEPT;

procedure HRM_DELETEPOSITION(P_POS_ID in VARCHAR2,ERRORMSG out VARCHAR2)
is
V_COUNT_RECORD NUMBER;
V_CHILDDEPT VARCHAR2(255);
VN VARCHAR2(255);

begin
  --2.check pos_id
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM ARCHIVE.RF_POSITION WHERE RTRIM(RF_POSITION.POS_ID) = RTRIM(P_POS_ID);
  IF V_COUNT_RECORD = 0 THEN
     ERRORMSG := 'THE POS_ID NOT EXIST,DELETE FAULT';
     RETURN;
  END IF;
  --3.check position's member;
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM ARCHIVE.RF_EMPLOYEE WHERE RTRIM(POS_ID) = RTRIM(P_POS_ID);
  IF V_COUNT_RECORD != 0 THEN
     ERRORMSG := 'THE POS_ID ALREADY HAVE EMPLOYEE,DELETE FAULT';
     RETURN;
  END IF;
  --4.check child_position
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM ARCHIVE.RF_POSITION WHERE RTRIM(pos_ppos_id) = RTRIM(P_POS_ID);
  IF V_COUNT_RECORD != 0 THEN
    SELECT COUNT(POS_ID) INTO V_COUNT_RECORD FROM RF_POSITION WHERE TRIM(POS_PPOS_ID)=RTRIM(P_POS_ID) AND TRIM(POS_ID) IN(SELECT TRIM(DPT_ID) FROM RF_DEPT WHERE TRIM(DPT_PDPT_ID)=RTRIM(P_POS_ID));
  IF V_COUNT_RECORD != 0 THEN
     ERRORMSG := 'THE POS_ID EXIST CHILD_POS,DELETE FAULT';
     RETURN;
    END IF;  
   END IF;

  --5.check dpt_leader_id
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM ARCHIVE.RF_DEPT WHERE RTRIM(DPT_LEADER_ID) = RTRIM(P_POS_ID);
  IF V_COUNT_RECORD != 0 THEN
     ERRORMSG := 'THE POS_ID HAVE DIRECT DEPT_LEADER';
     RETURN;
  END IF;
  --1.delete position
  DELETE FROM ARCHIVE.RF_POSITION WHERE RTRIM(POS_ID) = RTRIM(P_POS_ID);
  ERRORMSG := '';
end HRM_DELETEPOSITION;

PROCEDURE HRM_DELDPT(P_DPT_ID IN VARCHAR2,P_USER IN VARCHAR2,ERRMSG OUT VARCHAR2)
IS
V_COUNT_RECORD NUMBER;
V_M_ID VARCHAR2(255);
V_SQLSTR VARCHAR2(1000);
V_EMP_NTACCNT VARCHAR2(255);
V_CHILDDEPT VARCHAR2(255);
cursor  abc is 
  SELECT POS_ID FROM RF_POSITION WHERE TRIM(POS_PPOS_ID)=RTRIM(P_DPT_ID) AND TRIM(POS_ID) NOT IN(SELECT TRIM(DPT_ID) FROM RF_DEPT WHERE TRIM(DPT_PDPT_ID)=RTRIM(P_DPT_ID));
BEGIN
BEGIN
  --2.check dpt_id
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM archive.rf_dept WHERE RTRIM(DPT_ID) = RTRIM(P_DPT_ID);
  IF V_COUNT_RECORD != 1 THEN
       ERRMSG :=0;-- 'THE DPT_ID HAVE NOT EXISTED,DELETE FAULT';
    INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,NULL,NULL,NULL,NULL,3,ERRMSG,P_USER);
     RETURN;
  END IF;
  --3.check pdpt_id
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM ARCHIVE.RF_DEPT WHERE RTRIM(DPT_PDPT_ID) = RTRIM(P_DPT_ID);
  IF V_COUNT_RECORD != 0 THEN
     ERRMSG :=1;--'THE DEPT_ID EXIST CHILD_DEPT,DELETE FAULT';
  INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,NULL,NULL,NULL,NULL,3,ERRMSG,P_USER);
     RETURN;
  END IF;
  --4.check P_DPT_ID
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM ARCHIVE.RF_EMPLOYEE WHERE RTRIM(DPT_ID) = RTRIM(P_DPT_ID);
  IF V_COUNT_RECORD != 0 THEN
     ERRMSG :=2;-- 'THE DEPT HAVE EMPLOYEE,DELETE FAULT';
  INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,NULL,NULL,NULL,NULL,3,ERRMSG,P_USER);
     RETURN;
  END IF;
  --5 CHECK MANAGER
  BEGIN
  V_SQLSTR:='SELECT EMP_ID FROM RF_EMPLOYEE WHERE trim(DPT_ID)='''||RTRIM(P_DPT_ID)||''' AND trim(POS_ID)='''||RTRIM(P_DPT_ID)||'''  UNION ALL   SELECT EMP_ID from RF_EMP_POS_ADD WHERE trim(DPT_ID)='''||RTRIM(P_DPT_ID)||''' AND trim(POS_ID)='''||RTRIM(P_DPT_ID)||'''';
  dbms_output.put_line(V_SQLSTR);
  EXECUTE IMMEDIATE V_SQLSTR into V_M_ID;
  EXCEPTION WHEN NO_DATA_FOUND THEN
  V_M_ID:=NULL;
  END;
  IF V_M_ID IS NOT NULL THEN
    SELECT EMP_NTACCNT INTO V_EMP_NTACCNT FROM ARCHIVE.RF_EMPLOYEE WHERE RTRIM(EMP_ID) = LOWER(RTRIM(V_M_ID));
  SELECT COUNT(*) INTO V_COUNT_RECORD FROM WORKFLOW.STEP WHERE STATUS = 1 AND TRIM(CLIENT) = V_EMP_NTACCNT;
  IF V_COUNT_RECORD > 0 THEN
     ERRMSG :=3;-- 'THE MANAGER HAVE UNFINISHED TASK'; 
  INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,NULL,NULL,NULL,NULL,3,ERRMSG,P_USER);
     RETURN;
  END IF;
  delete rf_emp_pos_add where trim(pos_id)=trim(p_dpt_id) and trim(dpt_id)=trim(p_dpt_id);
  END IF;
  --1. delete record
  DELETE FROM ARCHIVE.RF_DEPT WHERE RTRIM(DPT_ID) = RTRIM(P_DPT_ID);
  BEGIN--刪除此部門相應職位下的非子部門所對應的職位
    OPEN ABC;
     FETCH ABC INTO V_CHILDDEPT;
     WHILE ABC%FOUND LOOP
  HRM_DELETEPOSITION(TRIM(V_CHILDDEPT),ERRMSG);
    IF ERRMSG IS NOT NULL THEN
      ERRMSG:=6;--刪除此部門相應職位下的非子部門所對應的職位失敗
    INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,NULL,NULL,NULL,NULL,3,ERRMSG,P_USER);
      rollback;
      RETURN;
      END IF;
    DELETE RF_EMP_POS_ADD WHERE TRIM(POS_ID)=TRIM(V_CHILDDEPT);
  FETCH ABC INTO V_CHILDDEPT;
     END LOOP;
     CLOSE ABC;
  EXCEPTION WHEN OTHERS THEN
  ERRMSG:=5;----刪除此部門相應職位下的非子部門所對應的職位或此職位的兼職信息失敗
  INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,NULL,NULL,NULL,NULL,3,ERRMSG,P_USER);
  rollback;
  END;
  HRM_DELETEPOSITION(P_DPT_ID,ERRMSG);
  IF ERRMSG IS NOT NULL THEN
  ERRMSG:=4;--D--刪除此部門相應職位 FAUL
  INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,NULL,NULL,NULL,NULL,3,ERRMSG,P_USER);
  rollback;
  RETURN;
  END IF;
  ERRMSG := '';
  EXCEPTION WHEN OTHERS THEN
  ERRMSG := 10;--CORD ERROR
  INSERT INTO UP_DEPTUP_LOGTOHR(P_DPT_ID,P_DPT_NAME,P_DPT_LEVEL,N_PDPT_ID,O_PDPT_ID,MFLAG,ERRMSG,MAINT_USER) VALUES(P_DPT_ID,NULL,NULL,NULL,NULL,3,ERRMSG,P_USER);
  ROLLBACK;
  END;
END HRM_DELDPT;

end;
/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13538095/viewspace-211692/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13538095/viewspace-211692/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值