Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  Oracle ile ilgili bir kavram.Oracle'yi Oracle yapan çok sevdiğim bir özelliklerden biri.Türkçede çoklu versiyonlama gibi ilginç bir şekilde soylenebilir.Aynı anda veritabanının farklı görünüşleri olarak ifade edilmesi daha güzel olacaktır.Oracle içinde herhangi bir işlem yapmak istediğiniz zaman, commit veya rollback yapmayıncaya kadar, diğer kullanıcılar tarafından görülmeyecektir.Aslında bir update yaptığınızı zannedip commit etmediğiniz için dış kullanıcıların bunu görmemesini sağlayabilirsiniz.O nedenle önemli bir konu.

Şimdi bir örnekle daha iyi ifade etmeye çalışalım.2 tane  SQL Plus açılmalı öncelikle. İlki için bir tane tablo oluşturalım:
create table t1(
   plaka number,
   sehir nvarchar2(32)
)

Tabloyu dolduralım:
DECLARE
   i NUMBER;
BEGIN
   i := 0;
   WHILE (i < 100)
   LOOP
      INSERT INTO t1 (plaka, sehir) VALUES (i*100, 'Sehir_' || to_char(i));
      i := i + 1;
   END LOOP;
END;

Tabloyu kontrol edelim:
SELECT * FROM t1

Verilerimiz:
    0    Sehir_0
    100    Sehir_1
    200    Sehir_2
    300    Sehir_3
    400    Sehir_4

En sonunda onaylayalım yaptıklarımızı:
commit


Şimdi ise ikinci SQL Pus ı açalım.Bİr update yapalım:
UPDATE t1 SET plaka = plaka * 100

Tabloyu kontrol edelim:
SELECT * FROM t1

Verilerimiz:
    0      Sehir_0
    10000    Sehir_1
    20000    Sehir_2
    30000    Sehir_3
    40000    Sehir_4

Şimdi kilit noktaya geliyoruz.Bu update i commit etmeden, ilk SQL Plus ekranından tabloyu kontrol ediyoruz:
SELECT * FROM t1

Verilerimiz:
    0    Sehir_0
    100    Sehir_1
    200    Sehir_2
    300    Sehir_3
    400    Sehir_4

ilginç değil mi?Oysa az önce bunu update etmiştik.İşte Oracle bu noktada sizin veritabanına bağlandığınız andan sonra commit edilmemiş hiç bir veriyi size göstermiyor.Bu sayede tutarlı bir okuma * sağlamış oluyor.
İkinci SQL Plus tan bir commit cümlesi ile yaptıklarımızı onaylayalım:
commit

Artık Oracle biliyorki, veriler onaylandı herkes yeni verilere ulaşabilir.İlk SQL Plus ekranından şimdi bir okuma yaparsak:
SELECT * FROM t1

Verilerimiz:
    0      Sehir_0
    10000    Sehir_1
    20000    Sehir_2
    30000    Sehir_3
    40000    Sehir_4

Yeni verileri görmüş oluruz.
mennan
07 Aralık 2005 23:32
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.
© 2005, Bilişim Kulübü. (1062 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen