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.
1 |
SELECT 'SAMET ' || 'GÖNEZ' || ' PL SQL ÖĞRENİYOR' FROM DUAL; |
Sonuç: SAMET GÖNEZ PL SQL ÖĞRENİYOR
UPPER: Verilen metini büyük harflere çevirir.
1 |
SELECT UPPER('yazılım dünyasına hoş geldiniz') FROM DUAL; |
Sonuç: YAZILIM DÜNYASINA HOŞ GELDINIZ
LOWER: Verilen metini küçük harflere çevirir
1 |
SELECT LOWER('KARADENİZİN İNCİSİ, ORDU!') FROM DUAL; |
Sonuç: karadenizin incisi, ordu!
INITCAP: Verilen metindeki kelimelerin baş harflerini büyük harfe çevirir
1 |
SELECT INITCAP('korkma sönmez bu şafaklarda yüzen al sancak') from dual; |
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’
1 |
SELECT INSTR('Merhaba PL/SQL Programlama dili en iyi SQL dillerinden birisidir','SQL',1,2) from dual; |
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.
1 |
SELECT SUBSTR('Oracle Veritabanı',3,4) FROM DUAL |
Sonuç: acle
1 |
SELECT SUBSTR('Oracle Veritabanı',-4,4) FROM DUAL |
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
1 |
SELECT ASCII('A') from DUAL |
Sonuç: 65
CHR: ASSCII Kodun karşılığı olan karakter getirilir.
1 |
SELECT CHR(89) FROM DUAL; |
Sonuç: Y
TRIM: Bir metinin hem sağında hem solunda verilen karakterleri temizler.
1 |
SELECT TRIM('0' FROM '0000000520000000000') AS RESULT FROM DUAL; |
Sonuç: 52
TRAILING: Verilen karakter metnin sonunda varsa temizliyor. RTRIM fonksiyonuyla aynı görevi yapıyor.
1 |
SELECT TRIM(TRAILING '0' FROM '0000000520000000000') AS RESULT FROM DUAL; |
Sonuç: 000000052
LEADING: Verilen karakter metnin başında varsa temizliyor. RTRIM fonksiyonuyla aynı görevi yapıyor.
1 |
SELECT TRIM(LEADING '0' FROM '0000000520000000000') AS RESULT FROM DUAL; |
Sonuç: 520000000000
RTRIM: Metinsel ifadenin sağında verilen parametreyi çıkarır.
1 |
SELECT RTRIM('------SAMET------', '-') FROM DUAL; |
Sonuç: ——SAMET
LTRIM: Metinsel ifadenin solunda verilen parametreyi çıkarır.
1 |
SELECT LTRIM('------SAMET------', '-') FROM DUAL; |
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.
1 |
SELECT LPAD('52',6,'0') FROM DUAL; |
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.
1 |
SELECT RPAD('52',6,'0') FROM DUAL; |
Sonuç: 520000
LENGTH: Verilen metnin uzunluğunu verir.
1 |
SELECT LENGTH('Metin Uzunluk Değeri') FROM DUAL; |
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.
1 |
SELECT REPLACE('Metin Güncelleme', 'Metin', 'Veri') FROM DUAL; |
Sonuç: Veri Güncelleme
REVERSE: Verilen değeri tersine çevirip sonuç döner.
1 |
SELECT REVERSE('sametgonez.com') FROM DUAL; |
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