Öncelikle bir view (bundan böyle görüntü olarak adlandıralım) tanımını yapmakla başlayalım. Bir görüntü, tablo veya başka bir görüntüdeki verinin yeniden gösterilmesi ve düzenlenmesi anlamına gelen objedir. Bir görüntünün referans olduğu objenin adı ise baz tablodur. Görüntülerle ilgili bilinmesi gereken belki de en önemli nokta; görüntüler veri tutmamaktadır. Yalnız içeriğine ait olan sorgunun data dictionary’de tutulmasıdır. Görüntüler, ana objelere refere olan bir işaretleyicidir. Herhangi bir boyutu bulunmamaktadır çünkü içerisinde veri tutmuyordur. Hazır yeri gelmişken, içerisinde veri barındırabilen ve sürekli olarak güncellenebilen görüntü türüne “materialized view” denmektedir. Görüntüler ayrıca bir veri görüntülenebilirliği koruması olarakta kullanabilirsiniz. Örnek; tabloda 10 tane sütun olduğunu düşünün. Bunlardan 2 tanesini tanımlayacağınız gruptaki insanların görmesini istemiyorsunuz. Yapmanız gereken bir görüntü hazırlamak ve kalan 8 sütunu bu görüntünün içeriği olarak işaretlemek.
Oracle komutları arasından “CREATE VIEW” komutu istenilen görüntünün oluşturulmasını sağlar. Yaratılacak olan bu görüntü birden fazla objeye refere ediyor olabilir. Bir örnekle devam edelim;
Yukarıdaki komut basit bir görüntü yaratma komutudur ve yonetim isimli objeden, kullanici_kodu 100,200 ve 300 olanların; isim, soyisim ve kullanici_kodu bilgilerini almaktadır. Başka bir örnek;
Yukarıdaki örnekte isim ve soyisim bilgilerini bir adet boşluk ile birleştirmek koşuluyla “AD-SOYAD” olarak tanımladık ve yine kullanici_kodu 100,200 ve 300 içerisinde olan kişileri istediğimizi belirttik. Burada dikkat edilmesi gereken husus Oracle’ın “AD-SOYAD” sütununu 91 byte olarak tanımlamasıdır. ISIM 30, SOYISIM 60 ve bir ara karaterle birlikte 91 olarak tanımlama gerçekleştirilmiştir. Bunu bir de NUMBER için nasıl yapıtığına bakalım;
NUMBER bir alanı birleştirdiğimi zaman “precision” ve “scale” alanları birleştirildi ve yalnız NUMBER olarak gösterilmeye başlandı.
Bir görüntüyü “SELECT *” komutu ile yarattıktan sonra eğer tablo üzerinde yeni bir sütun eklediyseniz görüntüyüde yeniden yaratmanız veya içeriğini güncellemeniz gerekmektedir. Örnek;
yonetim tablosuna maas sütununu eklememe rağmen daha önceden tanımladığım görüntü değişmedi. Bir üstteki sorgundan da anlaşıldığı üzere “*” isteğimiz karşılanmış ancak data dictionary’de, o anki bütün sütunlar çözümlenerek yaratılmış. Buradaki sizi çelişkiye düşürebilecek nokta “select *” olarak tanımladım, neden sonradan yarattığım sütunları da görüntüde göremiyorum” olacaktır. İşte sebebi de budur.
Bir görüntüyü henüz veritabanında olmayan bir obje için yaratabilirsiniz. Bunu yapabilmek için kullanacağınız komut FORCE komutudur. Bir görüntü eğer hata alıyorsa bu o görüntünün yaratılamadığı anlamına gelmektedir. FORCE komutunun kullanımı için;