Monday, June 15, 2009

DELETE İŞLEMİ HAKKINDA BİRKAÇ ÖRNEK

--kendimize işlemlerimizde kullanmak için Oracle Dictionary'lerinden bir tablo oluşturalım
CREATE TABLE DELETE_DENEME AS SELECT * FROM user_objects

--bakalım tablomuz oluşmuş mu ve içerisinde ne gibi kayıtlar var
--burada object_type alanı delete işleminde seçmeyi göstermek için uygun bir sütün.
select /*+ parallel(t,8) */ * from delete_deneme t

--tablomun bir yedeğini oluşturuyorum. Her seferinde Dictionary'e gitmekten iyidir.
create table delete_deneme_yedek as select * from delete_deneme
--TABLOYU KOMPLE SİLMEK İÇİN
--ilk delete örneğini yapalım. burada direk siliyoruz.Araya table demeye gerek yok.
--burada delete [silmek istediğimiz tablonun adi]
delete delete_deneme
--Sildikten sonra kaydetmeyi yapalım.
commit;
--tablomuzu yeniden dolduralım
insert into delete_deneme select * from delete_deneme_yedek
--belirli bir koşula uyan kayıtları silmek için.
delete FROM delete_deneme where object_type='TABLE'
commit;
--tablomuzu komple boşaltım yeniden dolduralım.Kullanıma hazır duruma getirelim.
truncate table delete_deneme
insert into delete_deneme select * from delete_deneme_yedek
--alt sorgu yazarakta delete işlemi yapabiliriz.
delete from delete_deneme where delete_deneme.object_id in (select d.object_id from delete_deneme d, delete_deneme_yedek y where y.object_type='TABLE' and d.object_type=y.object_type )
--Biraz karısık bir sorgu gibi oldu. tablo isimleri birbirine çok benzedi sanki.
--son olarak tablolarımız silelim.
--arkamızda pisliğimiz kalmasın.
drop table delete_deneme
drop table delete_deneme_yedek

No comments: