Önce v$sessionın tüm kolonlarını içeren bir tablo create edip, trigger da bunu kullanacğım. Aslında bu iş için v$session tablosundaki tüm kolonlara ihtiyacımız yok, siz isterseniz insert ve create table scriptini özelliştirip nesnelerinizi kolon bazında tanımlayıp create edebilirsiniz.
-- tablomuzu create edelim ;
create table kamil.logon_user as select * from v$session where 0=1
-- triggerımızı create edelim ;
create or replace trigger
kamil.logon_user_control
AFTER LOGON ON DATABASE
BEGIN
insert into kamil.logon_user select * from v$session ;
END;
/
Şimdi tablomuzu kontrol edelim, yeni gelen sessionlara ait tüm bilgileri bizim tablomuzada insert ediyor olması gerekiyor.
select count(*) from kamil.logon_user ;
COUNT(*)
----------
1078
1 row selected
Evet tablo doluyor, problem yok.
Şimdi yaptığımız işlemleri geri alalım. Temizlik zamanı;
drop trigger kamil.logon_user_control ;
Trigger dropped
drop table kamil.logon_user ;
Table dropped
Umarım işinize yarar zaman zaman bu tarz bilgileri kimi uygulama sahipleri isteyebiliyor. Aslında dba’ ler olarak kimi noktalarda bizim de işimize yarıyor.