Beruflich Dokumente
Kultur Dokumente
Null?
Type
NUMBER
TMSTMP
DATE
DSCRPTN
VARCHAR2(15)
TIMESTAMP
------------------
662902
09-MAY-14 18:30:28
# INSERTING RECORDS
SQL> insert into tab1 (no , tmstmp) values (1,sysdate);
1 row created.
SQL> insert into tab1 (no , tmstmp) values (2,sysdate);
1 row created.
SQL> commit;
Commit complete.
SQL> SELECT
CURRENT_SCN
-----------
------------------
662955
09-MAY-14 18:31:23
# DELETING
RECORDS
TIMESTAMP
-----------------09-MAY-14 18:31:52
SQL> SELECT
versions_startscn, versions_starttime
,
versions_endscn, versions_endtime
versions_xid, versions_operation
VERSIONS_STARTSCN
VERSIONS_STARTTIME
VERSIONS_ENDSCN
VERSIONS_ENDTIME
VERSIONS_XID
DSCRPTN
--------
662964
09-MAY-14 06.31.42 PM
060029000F010000
662964
09-MAY-14 06.31.42 PM
060029000F010000
662964
09-MAY-14
06.31.42 PM
662964
09-MAY-14
06.31.42 PM
versions_endscn, versions_endtime
versions_xid, versions_operation
VERSIONS_STARTSCN VERSIONS_STARTTIME
------------------ ------------------
VERSIONS_ENDSCN
VERSIONS_ENDTIME
VERSIONS_XID
DSCRPTN
--------
662964
09-MAY-14 06.31.42 PM
060029000F010000
662964
09-MAY-14 06.31.42 PM
060029000F010000
662951
09-MAY-14 06.31.12 PM
662964
09-MAY-14 06.31.42 PM
0700060018010000
662951
09-MAY-14 06.31.12 PM
662964
09-MAY-14 06.31.42 PM
0700060018010000
EXAMPLE II
TIMESTAMP
-----------
------------------
664595
09-MAY-14 19:45:33
# INSERTING RECORDS
SQL> insert into tab1 (no , tmstmp) values (1,sysdate);
1 row created.
SQL> insert into tab1 (no , tmstmp) values (2,sysdate);
1 row created.
SQL> commit;
Commit complete.
TIMESTAMP
-----------
------------------
664608
09-MAY-14 19:46:06
# UPDATING RECORDS
SQL> update tab1 set DSCRPTN='one' where no=1;
1 row updated.
SQL> update tab1 set DSCRPTN='two' where no=2;
1 row updated.
SQL> commit;
Commit complete.
SQL> SELECT current_scn, TO_CHAR(SYSTIMESTAMP, 'DD-MON-YY HH24:MI:SS') from v$database;
CURRENT_SCN
----------664751
TIMESTAMP
-----------------09-MAY-14 19:48:30
# DELETING RECORDS
SQL> delete from tab1;
2 rows deleted.
SQL> commit;
Commit complete.
TIMESTAMP
-----------------09-MAY-14 19:52:18
19:52:18
SQL> SELECT
versions_startscn, versions_starttime
,
versions_endscn, versions_endtime
versions_xid, versions_operation
DSCRPTN
from
tab1
VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP('09-MAY-14 19:46:06','DD-MON-YY HH24:MI:SS')
AND TO_TIMESTAMP('09-MAY-14 19:52:18','DD-MON-YY HH24:MI:SS');
VERSIONS_STARTSCN VERSIONS_STARTTIME
------------------
VERSIONS_ENDSCN
--------------------- ------------------
VERSIONS_ENDTIME
--------------------
VERSIONS_XID
---------------
DSCRPTN
---------
664761
09-MAY-14 07.48.53 PM
030012000D010000
two
664761
09-MAY-14 07.48.53 PM
030012000D010000
one
664724
09-MAY-14 07.47.45 PM
664761
09-MAY-14 07.48.53 PM
0A00240002010000
two
664724
09-MAY-14 07.47.45 PM
664761
09-MAY-14 07.48.53 PM
0A00240002010000
one
664724
09-MAY-14 07.47.45 PM
664724
09-MAY-14 07.47.45 PM
6 rows selected.
19:52:18
SQL> SELECT
,
versions_startscn, versions_starttime
versions_endscn, versions_endtime
versions_xid, versions_operation
DSCRPTN
from
tab1
VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP('09-MAY-14 19:45:33','DD-MON-YY HH24:MI:SS')
AND TO_TIMESTAMP('09-MAY-14 19:52:18','DD-MON-YY HH24:MI:SS')
/
VERSIONS_STARTSCN VERSIONS_STARTTIME
VERSIONS_ENDSCN
VERSIONS_ENDTIME
VERSIONS_XID
DSCRPTN
-------
664761
09-MAY-14 07.48.53 PM
030012000D010000
two
664761
09-MAY-14 07.48.53 PM
030012000D010000
one
664724
09-MAY-14 07.47.45 PM
664761
09-MAY-14 07.48.53 PM
0A00240002010000
two
664724
09-MAY-14 07.47.45 PM
664761
09-MAY-14 07.48.53 PM
0A00240002010000
one
664604
09-MAY-14 07.45.55 PM
664724
09-MAY-14 07.47.45 PM
090011003C010000
664604
09-MAY-14 07.45.55 PM
664724
09-MAY-14 07.47.45 PM
090011003C010000
6 rows selected.
EXAMPLE III
BETWEEN CLUASE USING SCN
SQL> SELECT current_scn, TO_CHAR(SYSTIMESTAMP, 'DD-MON-YY HH24:MI:SS') TIMESTAMP from v$database;
CURRENT_SCN TIMESTAMP
----------- -----------------670656 09-MAY-14 23:00:26
TIMESTAMP
-----------
------------------
1 row updated.
SQL> commit;
Commit complete.
***********
SQL> SELECT current_scn, TO_CHAR(SYSTIMESTAMP, 'DD-MON-YY HH24:MI:SS')TIMESTAMP from v$database;
CURRENT_SCN
TIMESTAMP
-----------
------------------
TIMESTAMP
SQL> commit;
Commit complete.
TIMESTAMP
------------------
versions_endscn, versions_endtime
versions_xid, versions_operation
DSCRPTN
from tab
VERSIONS BETWEEN SCN 670678 AND 670718;
VERSIONS_STARTSCN VERSIONS_STARTTIME
VERSIONS_ENDSCN VERSIONS_ENDTIME
VERSIONS_XID
V DSCRPTN
09-MAY-14 11.02.46 PM
670713
040011002D010000
09-MAY-14 11.02.46 PM
040011002D010000
670693
09-MAY-14 11.01.59 PM
02001B0029010000
two
670693
09-MAY-14 11.01.59 PM
02001B0029010000
one
6 rows selected.
670726
09-MAY-14 11.03.17 PM
670693
09-MAY-14 11.01.59 PM
670693
09-MAY-14 11.01.59 PM
versions_endscn, versions_endtime
versions_xid, versions_operation
DSCRPTN
from
tab1
VERSIONS BETWEEN SCN 670656 AND 670730;
VERSIONS_STARTSCN VERSIONS_STARTTIME
VERSIONS_ENDSCN
VERSIONS_ENDTIME
VERSIONS_XID
DSCRPTN
040011002D010000
09-MAY-14 11.02.46 PM
040011002D010000
670693
09-MAY-14 11.01.59 PM
02001B0029010000
two
670693
09-MAY-14 11.01.59 PM
02001B0029010000
one
670669
09-MAY-14 11.00.57 PM
670693
09-MAY-14 11.01.59 PM
070017001B010000
670669
09-MAY-14 11.00.57 PM
670693
09-MAY-14 11.01.59 PM
070017001B010000
670726
09-MAY-14 11.03.17 PM
670713
09-MAY-14 11.02.46 PM
670713
670726
09-MAY-14 11.03.17 PM
7 rows selected.
Suedo Column
Description
VERSION_XID
VERSIONS_OPERATION
VERSIONS_STARTSCN
VERSIONS_STARTTIME
VERSIONS_ENDSCN
VERSIONS_ENDTIME
POINTS TO NOTE :
One restriction with using specific timestamps or SCNs is that they must be within the boundaries of the
undo_retention
parameter.
Attempting
to
flashback
to
version
older
than
TYPE
VALUE
string
AUTO
undo_retention
integer
2400
undo_tablespace
string
UNDOTBS1
approximately
query
time-
from v$database;
TIMESTAMP
SQL> commit;
Commit complete.
SQL> commit;
Commit complete.
SQL> commit;
Commit complete.
TIMESTAMP
------------------2014-05-18 00:05:52
case
end as operation,
id from tab1
order by stime;
STIME
ENDTIME
XID
OPERATION
ID
18-MAY-14 12.04.50 AM
040018003D010000
INSERT
18-MAY-14 12.03.26 AM
18-MAY-14 12.04.50 AM
040018003D010000
INSERT
0500040035010000
UPDATE
0500040035010000
UPDATE
070016002B010000
DELETE
18-MAY-14 12.04.50 AM
18-MAY-14 12.04.50 AM
18-MAY-14 12.05.24 AM
18-MAY-14 12.05.24 AM
###########################################
#
###########################################
OPERATION
LOGON UNDO_SQL
SAM
INSERT
SAM
BEGIN
SAM
###########################################
#
###########################################
OPERATION
LOGON UNDO_SQL
SAM
UPDATE
SAM
BEGIN
SAM
###########################################
#
###########################################
OPERATION
LOGON UNDO_SQL
SAM
BEGIN
SAM
POINTS TO NOTE :
---------------Look at the Operation column. The original operation was a
SQL shows Insert operation. This is a simple
we do NOT
NAME
---------- --------2
rose
EMAIL
--------------rose@gmail.com
SQL> rollback;
Rollback complete.
NAME
----------
---------- ---------------
rose
rose@gmail.com
We can query the FLASHBACK_TRANSACTION_QUERY view for all SCNs between 773162 and 773273
SQL> select operation , logon_user , undo_sql from flashback_transaction_query
where table_owner='SAM' and table_name='TAB1'
AND start_scn between 773162 and 773273;
OPERATION
LOGON UNDO_SQL
SAM
INSERT
SAM
UPDATE
SAM
UPDATE
SAM
DELETE
SAM
FLASHBACK TABLE
###########################################
## Restrictions on Flashing Back Tables
##
###########################################
TIMESTAMP
------------------
sam@gmail.com
2 rose
rose@gmail.com
from v$database;
CURRENT_SCN TO_CHAR(SYSTIMESTA
----------- -----------------854902 20-MAY-14 11:59:33
#########################################
## ADDING CONSTRAINT AN EXISTING TABLE ##
#########################################
Null?
Type
NUMBER
NAME
VARCHAR2(15)