CREATE TABLE TABLE1
(
ASSIGNMENT_ID NUMBER NOT NULL,
CREATION_DATE DATE NOT NULL,
CREATED_BY VARCHAR2(30 BYTE) NOT NULL,
LAST_UPDATE_DATE DATE NOT NULL,
LAST_UPDATED_BY VARCHAR2(30 BYTE) NOT NULL,
EMPLOYEE_ID NUMBER NOT NULL,
START_DATE DATE NOT NULL,
END_DATE DATE,
PRIMARY_FLAG VARCHAR2(1 BYTE) NOT NULL,
DESCRIPTION VARCHAR2(240 BYTE),
PERF_MGR_ID NUMBER,
PERF_MRG_START_DATE DATE,
PERF_MRG_END_DATE DATE,
WORK_LOCATION VARCHAR2(240 BYTE),
JOB_TITLE VARCHAR2(30 BYTE),
ORG_ID NUMBER NOT NULL,
HR_MGR_ID NUMBER,
WORK_SHIFT VARCHAR2(30 BYTE),
PROJECT_MGR_ID NUMBER,
PROJECT_MRG_START_DATE DATE,
PROJECT_MRG_END_DATE DATE
)
=======================================================
CREATE TABLE HISTORYTABLE
(
ASSIGNMENT_ID NUMBER NOT NULL,
CREATION_DATE DATE NOT NULL,
CREATED_BY VARCHAR2(30 BYTE) NOT NULL,
LAST_UPDATE_DATE DATE NOT NULL,
LAST_UPDATED_BY VARCHAR2(30 BYTE) NOT NULL,
EMPLOYEE_ID NUMBER NOT NULL,
START_DATE DATE NOT NULL,
END_DATE DATE,
PRIMARY_FLAG VARCHAR2(1 BYTE) NOT NULL,
DESCRIPTION VARCHAR2(240 BYTE),
PERF_MGR_ID NUMBER,
PERF_MRG_START_DATE DATE,
PERF_MRG_END_DATE DATE,
WORK_LOCATION VARCHAR2(240 BYTE),
JOB_TITLE VARCHAR2(30 BYTE),
HR_MGR_ID NUMBER,
WORK_SHIFT VARCHAR2(30 BYTE),
PROJECT_MGR_ID NUMBER,
PROJECT_MRG_START_DATE DATE,
PROJECT_MRG_END_DATE DATE,
ORG_ID NUMBER NOT NULL,
REVISION_NUM NUMBER
)
===================================================
CREATE OR REPLACE TRIGGER <TRIGGER_NAME>
AFTER UPDATE ON TABLE1
FOR EACH ROW
DECLARE
l_revision_num NUMBER;
BEGIN
SELECT MAX(revision_num)
INTO l_revision_num
FROM HISTORYTABLE
WHERE ASSIGNMENT_ID = :new.ASSIGNMENT_ID;
IF nvl(l_revision_num, 0) = 0 then
l_revision_num := 1;
ELSE
l_revision_num := l_revision_num + 1;
END IF;
INSERT INTO OGS_HR_ASSIGNMENTS_H_ALL (
REVISION_NUM
, ASSIGNMENT_ID
, CREATION_DATE
, CREATED_BY
, LAST_UPDATE_DATE
, LAST_UPDATED_BY
, EMPLOYEE_ID
, START_DATE
, END_DATE
, PRIMARY_FLAG
, DESCRIPTION
, PERF_MGR_ID
, PERF_MRG_START_DATE
, PERF_MRG_END_DATE
, WORK_LOCATION
, JOB_TITLE
, HR_MGR_ID
, PROJECT_MGR_ID
, PROJECT_MRG_START_DATE
, PROJECT_MRG_END_DATE
, ORG_ID
)
VALUES (
l_revision_num
, :old.assignment_id
, :old.creation_date
, :old.created_by
, :old.last_update_date
, :old.last_updated_by
, :old.employee_id
, :old.start_date
, :old.end_date
, :old.primary_flag
, :old.description
, :old.perf_mgr_id
, :old.perf_mrg_start_date
, :old.perf_mrg_end_date
, :old.work_location
, :old.job_title
, :old.hr_mgr_id
, :old.project_mgr_id
, :old.project_mrg_start_date
, :old.project_mrg_end_date
, :old.org_id
);
EXCEPTION
WHEN OTHERS
THEN
raise_application_error (-20100, SQLERRM);
END OGS_HR_ASSIGNMENTS_ALL_AU;
/
(
ASSIGNMENT_ID NUMBER NOT NULL,
CREATION_DATE DATE NOT NULL,
CREATED_BY VARCHAR2(30 BYTE) NOT NULL,
LAST_UPDATE_DATE DATE NOT NULL,
LAST_UPDATED_BY VARCHAR2(30 BYTE) NOT NULL,
EMPLOYEE_ID NUMBER NOT NULL,
START_DATE DATE NOT NULL,
END_DATE DATE,
PRIMARY_FLAG VARCHAR2(1 BYTE) NOT NULL,
DESCRIPTION VARCHAR2(240 BYTE),
PERF_MGR_ID NUMBER,
PERF_MRG_START_DATE DATE,
PERF_MRG_END_DATE DATE,
WORK_LOCATION VARCHAR2(240 BYTE),
JOB_TITLE VARCHAR2(30 BYTE),
ORG_ID NUMBER NOT NULL,
HR_MGR_ID NUMBER,
WORK_SHIFT VARCHAR2(30 BYTE),
PROJECT_MGR_ID NUMBER,
PROJECT_MRG_START_DATE DATE,
PROJECT_MRG_END_DATE DATE
)
=======================================================
CREATE TABLE HISTORYTABLE
(
ASSIGNMENT_ID NUMBER NOT NULL,
CREATION_DATE DATE NOT NULL,
CREATED_BY VARCHAR2(30 BYTE) NOT NULL,
LAST_UPDATE_DATE DATE NOT NULL,
LAST_UPDATED_BY VARCHAR2(30 BYTE) NOT NULL,
EMPLOYEE_ID NUMBER NOT NULL,
START_DATE DATE NOT NULL,
END_DATE DATE,
PRIMARY_FLAG VARCHAR2(1 BYTE) NOT NULL,
DESCRIPTION VARCHAR2(240 BYTE),
PERF_MGR_ID NUMBER,
PERF_MRG_START_DATE DATE,
PERF_MRG_END_DATE DATE,
WORK_LOCATION VARCHAR2(240 BYTE),
JOB_TITLE VARCHAR2(30 BYTE),
HR_MGR_ID NUMBER,
WORK_SHIFT VARCHAR2(30 BYTE),
PROJECT_MGR_ID NUMBER,
PROJECT_MRG_START_DATE DATE,
PROJECT_MRG_END_DATE DATE,
ORG_ID NUMBER NOT NULL,
REVISION_NUM NUMBER
)
===================================================
CREATE OR REPLACE TRIGGER <TRIGGER_NAME>
AFTER UPDATE ON TABLE1
FOR EACH ROW
DECLARE
l_revision_num NUMBER;
BEGIN
SELECT MAX(revision_num)
INTO l_revision_num
FROM HISTORYTABLE
WHERE ASSIGNMENT_ID = :new.ASSIGNMENT_ID;
IF nvl(l_revision_num, 0) = 0 then
l_revision_num := 1;
ELSE
l_revision_num := l_revision_num + 1;
END IF;
INSERT INTO OGS_HR_ASSIGNMENTS_H_ALL (
REVISION_NUM
, ASSIGNMENT_ID
, CREATION_DATE
, CREATED_BY
, LAST_UPDATE_DATE
, LAST_UPDATED_BY
, EMPLOYEE_ID
, START_DATE
, END_DATE
, PRIMARY_FLAG
, DESCRIPTION
, PERF_MGR_ID
, PERF_MRG_START_DATE
, PERF_MRG_END_DATE
, WORK_LOCATION
, JOB_TITLE
, HR_MGR_ID
, PROJECT_MGR_ID
, PROJECT_MRG_START_DATE
, PROJECT_MRG_END_DATE
, ORG_ID
)
VALUES (
l_revision_num
, :old.assignment_id
, :old.creation_date
, :old.created_by
, :old.last_update_date
, :old.last_updated_by
, :old.employee_id
, :old.start_date
, :old.end_date
, :old.primary_flag
, :old.description
, :old.perf_mgr_id
, :old.perf_mrg_start_date
, :old.perf_mrg_end_date
, :old.work_location
, :old.job_title
, :old.hr_mgr_id
, :old.project_mgr_id
, :old.project_mrg_start_date
, :old.project_mrg_end_date
, :old.org_id
);
EXCEPTION
WHEN OTHERS
THEN
raise_application_error (-20100, SQLERRM);
END OGS_HR_ASSIGNMENTS_ALL_AU;
/
No comments:
Post a Comment