Merhaba Arkadaşlar,

Bu yazımda PL/SQL dilinde kullanılan metinsel fonksiyonlardan bazılarını anlatmaya çalışacağım.

Fonksiyonları anlatırken gerçek verileri kullanmayacağım. Yani somut bir tablom bulunmuyor. Oracle‘da gerçek verilerle çalışmadığınız durumlarda tablo ismi olarak DUAL vermeniz gerekiyor. MS SQL Server üzerinde şöyle bir kod yazdığınızda Select ‘Samet Gönez’ ekrana ‘Samet Gönez’ sonucunu dönecektir ama Oracle’da bu format desteklenmiyor. Bunun gibi gerçek karşılığı olmayan durumlarda DUAL tablo ismini kullanıyoruz. Yani Select ‘Samet Gönez’ from DUAL; şeklinde yazmamız gerekiyor. Fonksiyonları anlatırken çoğunlukla bu tabloyu kullanıyoruz bu yüzden bilmeyenler için öncesinde bahsetmek istedim.

Metin birleştirme işlemleri için || operatörü kullanılır. MS SQL Serverda ise + operatörü kullanılır. PL/SQL dilinde + operatörü matematiksel işlemler için kullanılır.

Sonuç: SAMET GÖNEZ PL SQL ÖĞRENİYOR


UPPER: Verilen metini büyük harflere çevirir.

Sonuç: YAZILIM DÜNYASINA HOŞ GELDINIZ


LOWER: Verilen metini küçük harflere çevirir

Sonuç: karadenizin incisi, ordu!


INITCAP: Verilen metindeki kelimelerin baş harflerini büyük harfe çevirir

Sonuç: Korkma Sönmez Bu Şafaklarda Yüzen Al Sancak


INSTR: Bir metin içerisinde metin ya da karakterin başlangıç sırasını bulur. Parametre olarak şu değerleri alır. ‘kaynak metin’, ‘aranan metin’, ‘kaynak metin içinde aramaya kaçıncı sıradan başlanacak’, ‘aranan metnin kaçıncı kelime olduğu’

Bu sorgumuzda sonuç 40 dönecektir. ‘Merhaba PL/SQL Programlama dili en iyi SQL dillerinden birisidir’ cümlesi içerisinde 1. sıradan başlayıp SQL geçen ifadeleri arıyor ve SQL kelimesinin 2. sıradaki başlangıç sıra değerini bize verir. Eğer 2 yazdığımız yere 1 yazarsak sonuç olarak 1. sıradak SQL kelimesinin sıra numarası olan 12 sayısını döner. 3 yazarsak da 3. kez SQL ifadesi geçmediği için sonuç 0 dönecektir.


SUBSTR: Bir metin içerisinde başlangıç ve bitiş değerleri verilen aralıktaki metni getirir. Parametre olarak ‘Metin’, ‘Başlangıç Sırası’, ‘Alınacak Karakter Sayısı’ değerleri verilir. Başlangıç sırası pozitif sayıysa metnin sol tarafından başlar negatif sayıysa metnin sonundan başlar ve alınacak karakter sayısı kadar metni seçip sonuç olarak döner. Alınacak karakter sayısı metnin uzunluğundan fazla girilmişse sadece metnin uzunluğu kadar sonuç döner.

Sonuç: acle

Sonuç: banı


ASCII: Parametre olarak verilen değerin ASCII kod karşılığını verir. Parametre olarak tek karakter girilmelidir. N tane karakter girseniz bile ilk karakterin ASCII kod karşılığını getirir

Sonuç: 65


CHR: ASSCII Kodun karşılığı olan karakter getirilir.

Sonuç: Y


TRIM: Bir metinin hem sağında hem solunda verilen karakterleri temizler.

Sonuç: 52


TRAILING: Verilen karakter metnin sonunda varsa temizliyor. RTRIM fonksiyonuyla aynı görevi yapıyor.

Sonuç: 000000052


LEADING: Verilen karakter metnin başında varsa temizliyor. RTRIM fonksiyonuyla aynı görevi yapıyor.

Sonuç: 520000000000


RTRIM: Metinsel ifadenin sağında verilen parametreyi çıkarır.

Sonuç: ——SAMET


LTRIM: Metinsel ifadenin solunda verilen parametreyi çıkarır.

Sonuç: SAMET——


LPAD: Bir metnin belirli bir karakter uzunluğuna kadar tamamlanması için kullanılır. Örneğin sayısal bir metnin 6 haneli olarak yazılmasını istiyoruz ama elimizde ki değer 2 haneli ise LPAD ile kalan 4 karakter belirlediğimiz karakterle metnin sol tarafına eklenerek tamamlanır.

Sonuç: 000052


RPAD: Bir metnin belirli bir karakter uzunluğuna kadar tamamlanması için kullanılır. Örneğin sayısal bir metnin 6 haneli olarak yazılmasını istiyoruz ama elimizde ki değer 2 haneli ise RPAD ile kalan 4 karakter belirlediğimiz karakterle metnin sağ tarafına eklenerek tamamlanır.

Sonuç: 520000


LENGTH: Verilen metnin uzunluğunu verir.

Sonuç: 20


REPLACE: Metin içerisinde geçen bir değeri başka bir değerle değiştirmek için kullanılır. Parametre olarak ‘Kaynak Metin’, ‘Değiştirilecek değer’, ‘Yeni değer’ parametrelerini alır.

Sonuç: Veri Güncelleme


REVERSE: Verilen değeri tersine çevirip sonuç döner.

Sonuç: moc.zenogtemas


Benim anlatacaklarım şimdilik bu kadar. Zamanla yeni fonksiyonlar öğrendikçe bu sayfayı da güncelleyeceğim. Sizin de bildiğiniz ama burada olmayan fonksiyonlar varsa yorum bölümünden bizimle paylaşabilirsiniz.

Herkese kolaylık ve başarı dilerim.
Selametle