create table emp_fb
(
empno NUMBER(4) not null,
ename VARCHAR2(10),
sal NUMBER(7,2),
deptno NUMBER(2)
)
delete from emp_fb
commit
begin
insert into emp_fb values (7782, 'CLARK', 2450, 10);
insert into emp_fb values (7788, 'SCOTT', 3000, 20);
insert into emp_fb values (7839, 'KING', 5000, 10);
insert into emp_fb values (7844, 'TURNER', 1500, 30);
insert into emp_fb values (7876, 'ADAMS', 1100, 20);
insert into emp_fb values (7900, 'JAMES', 950, 30);
insert into emp_fb values (7902, 'FORD', 3000, 20);
insert into emp_fb values (7934, 'MILLER', 1300, 10);
commit;
end;
col empno format 99999
col ename format a10
col sal format 99999.99
set echo on
select e.empno, e.ename, e.sal
from emp_fb e
where e.deptno = 10
update emp_fb e
set e.sal = e.sal + 200
where e.deptno = 10
commit
select e.empno, e.ename, e.sal
from emp_fb e
where e.deptno = 10
rem sleep for 1 second
begin
dbms_lock.sleep(1);
end;
select e.empno, e.ename, e.sal
from emp_fb as of timestamp to_timestamp(sysdate - 1/(24*60*60)) e
where e.deptno = 10
column col noprint new_value the1stscn
select dbms_flashback.get_system_change_number col from dual
update emp_fb e
set e.sal = e.sal + 200
where e.deptno = 10
commit
select e.empno, e.ename, e.sal
from emp_fb e
where e.deptno = 10
select e.empno, e.ename, e.sal
from emp_fb as of scn &the1stscn e
where e.deptno = 10
update emp_fb e
set e.sal = e.sal - 100
where e.deptno = 10
commit
update emp_fb e
set e.sal = e.sal - 100
where e.deptno = 10
commit
column col noprint new_value the2ndscn
select dbms_flashback.get_system_change_number col from dual
select e.empno, e.ename, e.sal
from emp_fb versions between scn &the1stscn and &the2ndscn e
where e.deptno = 10
select e.empno
,e.ename
,e.sal
,versions_startscn
,versions_endscn
,versions_operation
,versions_starttime
,versions_endtime
,versions_xid
from emp_fb versions between scn &the1stscn and &the2ndscn e
where e.deptno = 10