Oracle Global Temp Tablo

Share Button

Merhaba,

Bu yazıda Oracle Global Temp Tablolardan bahsedeceğim. Temp tablolar verileri aktif SESSION veya TRANSACTION sonlanıncaya kadar tutan ve yalnızca veriyi yaratan SESSION’ın görebildiği TEMPORARY tablolardır.

Kullanım ihtiyacı asgari seviyede olan ama doğru yer ve zamanda kullanıldığında azami kolaylık sağlayan tablolardır.

Şu ana kadar toplamda 2 veya 3 kere kullandığım bu özellik için benim ihtiyaç durumum aşağıdakilerden oluşmaktaydı:

  • Hesaplama yaparken verinin geçici olarak tutulması gereken ekranlar
  • Verinin kalıcı olarak tutulma zorunluluğu olmayan hesaplamalar
  • Yalnızca veriyi oluşturanın görmesi gerektiği durumlar

Temp tablolar iki şekilde kullanılabiliyor.

1. İlgili SESSION tarafından oluşturulan verilerin TRANSACTION sonlanınca yani COMMIT veya ROLLBACK yapılınca silinmesi

Bu durumda tabloya SESSION tarafından INSERT edilen kayıtlar COMMIT ve ROLLBACK anında tablodan silinirler.

2. İlgili SESSION tarafından oluşturulan verilerin SESSION sonlanınca silinmesi

Bu durumda tabloya SESSION tarafından INSERT edilen kayıtların COMMIT edilince silinmez, ilgili SESSION’ın çıkış yapması veya kopması durumunda ise silinir.

 Temp Tabloların Temel Özellikleri

  • TRUNCATE komutu sadece ilgili SESSION tarafından INSERT edilmiş kayıtları siler. Diğer SESSION kayıtlarını etkilemez.
  • Veriler TEMP TABLESPACE içerisinde tutulur.
  • SESSION beklenmedik bir şekilde sonlansa dahi veriler tablodan silinir.
  • INDEX, VIEW ve TRIGGER’lar normal tablolarda olduğu gibi GLOBAL TEMP tablolarda da kullanılabilir.