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/