Bir tablonun en son ne zaman değiştirildiğinin tespiti
Bir tablodaki her satır için, ORA_ROWSCN, satırdaki en son değişikliğin SCN bilgisini döndürür. Bu sözde kolon, bir satırın en son ne zaman güncellendiğini yaklaşık olarak belirlemek için kullanılabilir. Tablo satırlarındaki ORA_ROWSCN bilgisi aşağıdaki gibi sorgulanabilir.
Satır bazlı değişiklik takibi için ilgili tablonun ROWDEPENDENCIES belirtilerek oluşturulması gerekmektedir. Belirtilmediği müddetçe tablolar NOROWDEPENDENCIES şeklinde oluşturulur. ROWDEPENDENCIES şeklinde oluşturulan tablolardaki her satır fazladan 6 byte veri içerecektir.
SQL> create table a(id number,ad varchar(50)) ROWDEPENDENCIES;
Aşağıdaki gibi satırların ORA_ROWSCN bilgisi sorgulanabilir.
SQL> select to_char(ORA_ROWSCN),ID from aduruoz.a;
TO_CHAR(ORA_ROWSCN) ID
-------------------------- -------
1301894904749 1
1301894900367 2
1301894900627 3
1301894903961 4
En büyük ORA_ROWSCN değeri , bir tablodaki en son yapılan değişikliğin tarhini de verecektir.
SQL> select max(to_char(ORA_ROWSCN)) from aduruoz.a;
MAX(TO_CHAR(ORA_ROWSCN))
------------------------------------------------------------------------------------------------------------------------
1301894904749
ORA_ROWSCN değerinin tarihe dönüştürülmesini aşağıdaki komut ile yapabilirsiniz.
SQL> select scn_to_timestamp(1301894904749) as timestamp from dual;
TIMESTAMP
---------------------------------------------------------------------------
28-MAY-19 02.36.32.000000000 PM