14 Ocak 2014 Salı

Oracle nesnelerinin, ve içeriklerinin tanım tabloları

Örnek:
Elimizde, farklı durumlara göre yüklü miktarda işlem yapılması gereken bir veri yığını var. Kalem kağıt olsa, dip yekün alıp bir yere not alarak bu rakam üzerinden işleme devam etmek için sonucu muhafaza etmek isteriz. İşte geçici tablolar da tam bu işe yarıyor.Ham veriyi işleyip gerekli düzene soktuktan sonra, verinin bu halini geçici tablolara kaydederiz. Peki normal bir tablo create edip oraya kaydetsek olmaz mı? Olur, ama birden fazla kullanıcının aynı anda, aynı ham veriye ulaşıp aynı şekilde bir rapor hazırlamaya çalıştığını düşünelim. Bu işi yapmaya çalışan her kullanıcı için üretilen ara tablo, işlenmiş verilerle yeniden doldurulmaya çalışılacaktır. Bu işlem yeteri sıklıkta yapılırsa tablo bir türlü dolamayacağı için kimse rapora ulaşamayacaktır. Geçici tablolar veri kümelerinin, her Session için, hiçbirinin diğer session'larda oluşturulan verilere ulaşamayacağı ve ayrı ayrı hepsinin de aynı tablo ismi ile verileri muhafaza edileceği şekilde saklanmasına olanak sağlar. Yani A şahsı ham veriyi işleyip, sadece X session'ına özel TEMP_TABLE'da, B şahsı da aynı şekilde Y session'ına özel TEMP_TABLE'da hem de bu işlemleri aynı anda yaparak saklayabilir.
Geçici tabloların normal tablolardan Syntax olarak çok da farkı yok.

CREATE GLOBAL TEMPORARY TABLE TEMP_TABLE1
(
  ID NUMBER,
 
ENTRY_DATE DATE
)
ON COMMIT PRESERVE ROWS;

Burada, PRESERVE ROWS, geçici tablodaki verilerin Session sonlanana kadar tabloda barındırılacağını, Session sonunda ise tablodan silineceğini belirtir. Session değil de Commit işlemi bazında bu işlemin olması için DELETE ROWS yazmak yeterlidir.

Hiç yorum yok:

Yorum Gönder