read-only table komutu

Dba’ ler olarak sıkça database’ deki tablolar üzerinde bir takım admin işlemleri yapıyoruz. Zaman zaman da bir tablo üzerinde çalışırken tabloya erişim olmasını daha doğrusu çalışma yaptığımız süre boyunca tabloda herhangi bir verinin değişmemesini isteriz. 11g öncesinde bu iş biraz sıkıntılı idi, üzerinde çalıştığımız tablo hangi tablespace’ de ise ya o tablespace’ i read only moda alırdık yada tabloyu rename edip aynı structure da yeni bir tane oluşturup ondan sonra işleme devam ederdik veya başka bir takım yöntemlere başvurmak zorunda kalırdık. 11g ile birlikte bizim de işimizi çok kolaylaştıran çok güzel bir özellik geldi. Artık tablo seviyesinde read only mod özelliğini kullanabiliyoruz.

Nasıl yapabildiğimizi bir örnekle açıklayalım ;

Yine bir test tablosu oluşturarak başlayalım.

SQL> create table test as select * from dba_tables;
Table created.

Tablomuzu read only moda alalım ;

SQL> alter table test read only;
Table altered.

Tabloyu select etmeye çalışalım ;

SQL> select count(*) from test;

COUNT(*)
———-
2777
1 row selected.

Read-only mod okumaya izin verdiğinden dolayı bir hata almadık. Şimdi delete’ i deneyelim ;

SQL> delete test;
delete test
Error at line 1
ORA-12081: update operation not allowed on table “KAMIL”.”TEST”

DML işlemi yapılmasını yani içerisindeki datanın değişmesini istemediğimiz durumlarda read-only modu tablo seviyesinde rahatlıkla kullanabilirsiniz.

Tabloyu tekrar eski haline almak içinse;

SQL> alter table test read write;
Table altered.

komutunu kullanabilirsiniz.

Be Sociable, Share!

One comment

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


3 × beş =

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">