Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

Sorunuz mu var? Belki de çoktan soruldu..

0
Oracle yanlışlıkla sildiğim tabloyu kurtarabilir miyim?

Açık 1 Cevaplar 30 Gösterim Veri Tabanı
Oracle'da yanlışlıkla truncate ettiğim, delete from ile sildiğim ya da drop dediğim tabloları kurtarma ihtimalimiz var mı ?

1 cevap

0

Eğer Oracle'da flashback özelliği açıksa ve üzerinden fazlaca zaman geçmemiş ise aşağıdaki  sorguda kullanılan as of timestamp  kalıbını kullanarak eski verilerinize ulaşabilirsiniz.

select * from tablo_adı AS OF TIMESTAMP to_timestamp('22/12/2016 09:49:10','DD/MM/YYYY HH24:MI:SS');

SQL> select * from deneme;

        ID TARIH
---------- ----------
         1 22/12/2016
         2 22/12/2016

SQL> !date
Thu Dec 22 09:49:31 +03 2016

SQL> delete deneme;

2 rows deleted.

SQL> commit;

Commit complete.

SQL> select * from deneme;

no rows selected

SQL> select * from deneme  AS OF TIMESTAMP to_timestamp('22/12/2016 09:49:30','DD/MM/YYYY HH24:MI:SS');

        ID TARIH
---------- ----------
         1 22/12/2016
         2 22/12/2016

--biraz daha öncesinde ise aşağıdaki gibi tek kayıt varmış.

SQL> select * from deneme  AS OF TIMESTAMP to_timestamp('22/12/2016 09:49:10','DD/MM/YYYY HH24:MI:SS');

        ID TARIH
---------- ----------
         1 22/12/2016

Tablo yapısında değişiklik yapılmadığı sürece (alter veya truncate) , bu şekilde verinizin geçmiş halini görebilirsiniz.  Sadece silinme diye düşünmeyin, yanlışlıkla update ettiğiniz verinizin eski halini de görebilirsiniz. İsterseniz create table as  kullanarak verinizin önceki halini başka bir tabloya da atabilirsiniz.

eğer bu işlemi yaparken yetki hatası alırsanız, veritabanı yöneticisine yetki vermesi için başvurabilirsiniz :)

22 Aralık 2016 buzel (551 puan) cevapladı
23 Aralık 2016 buzel düzenledi
...