Bir tablonun en son ne zaman değiştirildiğinin tespiti

28 May by Ahmet Duruöz

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

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir