Oracle PL/SQL içinde genel programlama dillerinde yer olan ve PL/SQL'e has bir çok özellik fonksiyonlar altında bir araya toplanmıştır. Bu fonksiyonlar veritabanı işlemleri ve sorgulama işlemleri sırasında geliştiricilerin işini çok kolaylaştırmaktadır. Bunlardan kullanılması en eğlenceli fonksiyonlardan bir tanesi de COMPOSE fonksiyonudur.
Compose sözünün kelime anlamı İngilizcede oluşturmak, bestelemek gibidir. Makalenin devamında fonksiyonu tanıdıkça siz de ne demek olduğunu anlayacaksınız.
COMPOSE fonksiyonu Oracle PL/SQL içerisinde parametre olarak verilen metinleri birleştirerek istenilen karakter veya metinlerin üretilmesini sağlar. Örneğin "u" karakterine sadece noktaları ekleyerek "ü" karakterini üretmek gibi...
COMPOSE( string );
Örnek bir kaç sorgu çalıştıracak olursak:
SELECT COMPOSE('u' || unistr('\0308') ) FROM DUAL;
Sonuç: ü
SELECT COMPOSE('A' || unistr('\0302') ) FROM DUAL;
Sonuç: Â
Dikkat ettiğiniz gibi birinci alan normal karakter olsa da ikinci alanda önce unistr('\0308') sonra unistr('\0302') yazdım. Bunlar da gerekli üst bilgilerini karaktere eklemek için kullanılan kodlardır. Bu kodların tam listesi aşağıdaki tabloda yer almaktadır.
Unistring Değer | Sonuç Karakter |
---|---|
unistr('\0300') | grave accent ( ` ) |
unistr('\0301') | acute accent ( ´ ) |
unistr('\0302') | circumflex ( ^ ) |
unistr('\0303') | tilde ( ~ ) |
unistr('\0308') | umlaut ( ¨ ) |
COMPOSE fonksiyon aşağıdaki Oracle sürümlerinde yer almaktadır. Muhtemelen bundan sonraki tüm sürümlerde de yer alacaktır.
-Oracle 12c,
-Oracle 12c,
-Oracle 11g,
-Oracle 10g,
-Oracle 9i
Not: Compose fonksiyonun çalışabilmesi için karakter desteği de şarttır. Örneğin u karakterini bu yöntemle ü'ye dönüştürebilirsiniz ama B üzerine çift nokta eklenmez.
Son olarak konuyu özetleyecek olursak, Oracle COMPOSE fonksiyonu parametre olarak aldığı değerin üzerine tabloda yer alan karakter kodlarını ekleyerek yeni karakterler üretilmesini sağlar. Bu gibi durumlar farklı dillerdeki sorgu sonuçları için gerekli olabilir. Örnekte de gördüğümüz gibi A'dan  karakteri üretilmiştir.
Oracle PL/SQL bünyesinde yer alan tüm metin ve karakter fonksiyonları listesine buradan erişebilirsiniz.
Oracle PL/SQL bünyesinde yer alan tüm fonksiyonlara ve açıklamalarına ise buradan erişebilirsiniz.
Yorumlar
Yorum Gönder