Oracle

Oracle Dual Table Nedir?

Bu yazıda bazı SQL veritabanlarında(Örn: Oracle) kullanılan DUAL table nedir sorusuna cevap vereceğiz.

Oracle veri tabanında SELECT yan tümcesinden sonra kullanılan FROM yan tümcesi kullanımı zorunludur. Bu yüzden SQLite, MS SQL, MySQL, MariaDB vb. veritabanlarında aşağıdaki sorgu çalışmasına rağmen ORACLE veritabanında hata verecektir.

İçerisinde tablo olmayan bir şey sorgulamak istersek aşağıdaki örnekte olduğu gibi 10+5, ‘tasarimkodlama’ yada SYSDATE gibi tarih sorgulamak isteyebiliriz.

Oracle hata kodu: “FROM keyword not found where expected”

Oracle’da hata almamak ve bu işlemleri gerçekleştirmek için neyse ki Oracle, SYS kullanıcısının şemasına ait olan ancak tüm kullanıcıların erişebildiği özel bir tablo olan DUAL tablosunu kullanmamıza izin vermektedir.

DUAL Tablosu Nedir?

Veri sözlüğü ile birlikte Oracle Veritabanı tarafından otomatik olarak oluşturulan bir tablodur.

DUAL, SYS kullanıcısının şemasındadır, ancak tüm kullanıcılar DUAL adıyla erişilebilir. VARCHAR2(1) olarak tanımlanan bir DUMMY sütunu vardır ve X değerine sahip bir satır içerir.

Hadi bunun nasıl olduğunu basitçe görelim. Aşağıdaki sorguyu yazarak başlayalım.

DUAL Tablosu Nedir?

Gördüğünüz gibi DUMMY sütun adını X ise bu sütunda bulunan tek satırlık bir değeri ifade etmektedir.

Peki bunu 10+5 sorgumuzda nasıl kullanırız. DUAL tablosundan seçim yapmak, SELECT deyimiyle sabit bir ifadeyi hesaplamak için kullanışlıdır. DUAL’in yalnızca bir satırı olduğundan, sabit yalnızca bir kez döndürülür.

Örneğimizi DUAL tablosunu kullanarak yeniden yazalım.

Yukarıdaki örnekte AS SONUC isteğe bağlıdır. Sütun adının SONUC olarak görünmesi için yapılmıştır. Sorgu çalıştırıldığında aşağıdaki gibi bir sonuç üretecektir.

DUAL Tablosu Nedir?

Yine DUAL tablosunu kullanarak aşağıdaki gibi bir metni, fonksiyonu yada sistem tarihini getirebiliriz. Aşağıdaki örnekleri inceleyelim.

Örnek: metin sorgulama

Örnek: sistem tarihi

Örnek: Bir fonksiyon ile birlikte kullan(ROUND yuvarla fonksiyonu ile kullanım)

Örnek: UPPER karakter büyütme fonksiyonu ile kullanma

Bu yazıda DUAL kullanımını ORACLE Express 21c sürümünü kullanarak yaptık.

MS SQL Server, MySQL, PostgreSQL ve SQLite dahil olmak üzere diğer birçok veritabanları, FROM yan tümcesinin çıkarılmasına izin verir. Bu istisna, diğer veritabanlarında DUAL gibi boş bir tablo olmamasının nedenidir.

Örnek: Sistem tarihini yazdırma

Yorum Yap

Yorum yapmak için tıklayın