Create a table with ROW ARCHIVAL enabled
CREATE TABLE employees_indbarch
(employee_id NUMBER(6) NOT NULL,
first_name VARCHAR2(20), last_name VARCHAR2(25) NOT NULL,
email VARCHAR2(25) NOT NULL, phone_number VARCHAR2(20),
hire_date DATE NOT NULL, job_id VARCHAR2(10) NOT NULL, salary NUMBER(8,2),
commission_pct NUMBER(2,2), manager_id NUMBER(6), department_id NUMBER(4)) ROW ARCHIVAL
Table created.
Display the structure of the table
SELECT SUBSTR(COLUMN_NAME,1,22) NAME, SUBSTR(DATA_TYPE,1,20) DATA_TYPE, COLUMN_ID AS COL_ID,
SEGMENT_COLUMN_ID AS SEG_COL_ID, INTERNAL_COLUMN_ID AS INT_COL_ID, HIDDEN_COLUMN, CHAR_LENGTH
FROM USER_TAB_COLS WHERE TABLE_NAME='EMPLOYEES_INDBARCH'
NAME | DATA_TYPE | COL_ID | SEG_COL_ID | INT_COL_ID | HIDDEN_COLUMN | CHAR_LENGTH |
---|---|---|---|---|---|---|
ORA_ARCHIVE_STATE | VARCHAR2 | - | 1 | 1 | YES | 4000 |
EMPLOYEE_ID | NUMBER | 1 | 2 | 2 | NO | 0 |
FIRST_NAME | VARCHAR2 | 2 | 3 | 3 | NO | 20 |
LAST_NAME | VARCHAR2 | 3 | 4 | 4 | NO | 25 |
VARCHAR2 | 4 | 5 | 5 | NO | 25 | |
PHONE_NUMBER | VARCHAR2 | 5 | 6 | 6 | NO | 20 |
HIRE_DATE | DATE | 6 | 7 | 7 | NO | 0 |
JOB_ID | VARCHAR2 | 7 | 8 | 8 | NO | 10 |
SALARY | NUMBER | 8 | 9 | 9 | NO | 0 |
COMMISSION_PCT | NUMBER | 9 | 10 | 10 | NO | 0 |
MANAGER_ID | NUMBER | 10 | 11 | 11 | NO | 0 |
DEPARTMENT_ID | NUMBER | 11 | 12 | 12 | NO | 0 |
Insert data into the table
INSERT INTO employees_indbarch(employee_id, first_name, last_name, email,
hire_date, job_id, salary, manager_id, department_id)
VALUES (251, 'Scott', 'Tiger', 'scott.tiger@example.com', '21-MAY-2009',
'IT_PROG', 50000, 103, 60)
1 row(s) inserted.
INSERT INTO employees_indbarch(employee_id, first_name, last_name, email,
hire_date, job_id, salary, manager_id, department_id)
VALUES (252, 'Jane', 'Lion', 'jane.lion@example.com', '11-JUN-2009',
'IT_PROG', 50000, 103, 60)
1 row(s) inserted.
INSERT INTO employees_indbarch(employee_id, first_name, last_name, email,
hire_date, job_id, salary, manager_id, department_id)
VALUES (253, 'Bob', 'Bear', 'bob.bear@example.com', '15-JUL-2009',
'IT_PROG', 50000, 103, 60)
1 row(s) inserted.
SELECT employee_id, ORA_ARCHIVE_STATE FROM employees_indbarch
EMPLOYEE_ID | ORA_ARCHIVE_STATE |
---|---|
251 | 0 |
252 | 0 |
253 | 0 |
Set the a record to INACTIVE
UPDATE employees_indbarch SET ORA_ARCHIVE_STATE = '1' WHERE employee_id = 252
1 row(s) updated.
SELECT employee_id, ORA_ARCHIVE_STATE FROM employees_indbarch
EMPLOYEE_ID | ORA_ARCHIVE_STATE |
---|---|
251 | 0 |
252 | 1 |
253 | 0 |
ALTER SESSION SET ROW ARCHIVAL VISIBILITY=ACTIVE
Statement processed.
SELECT employee_id, ORA_ARCHIVE_STATE FROM employees_indbarch WHERE ORA_ARCHIVE_STATE = '0'
EMPLOYEE_ID | ORA_ARCHIVE_STATE |
---|---|
251 | 0 |
253 | 0 |
ALTER SESSION SET ROW ARCHIVAL VISIBILITY=ALL
Statement processed.
SELECT employee_id, ORA_ARCHIVE_STATE FROM employees_indbarch
EMPLOYEE_ID | ORA_ARCHIVE_STATE |
---|---|
251 | 0 |
252 | 1 |
253 | 0 |