Oracle da Karakter Veri Türüyle Kullanılan Fonksiyonlar Nedir ve Kullanımı
Karakter verş türüyle çalışan sql fonksiyonları,dönüştürücüler ve değiştirici/yorumlayıcı fonksiyonlar olarak 2 ana gruba ayrılırlar.Bunları aşağıdaki gibi gruplayabiliriz.
Dönüştürücüler
- Upper
- Lower
- Initcap
Değiştirici ve yorumlayıcılar
- Length
- Substr
- Instr
- Concat
- Rpad
- Lpad
- Trim
- Replace
Dönüştürücüler
Bunları tanımlamak gerekirse kullanımını detaylı olarak bahsedelim.ilk olarak upper fonksiyonundan bahsedelim.Bu fonksiyon system tarafından otomatik oluşturulmuş ve varchar yada nvarchar değer alan ve geriye değer dönderen bir fonksiyondur.Bu fonksiyon ile yolladığımız metinin tüm karakterlerini büyük harfe çevirir.örneğin “MeSuT “kelimesini upper fonksiyonu ile kullanırsak bize “MESUT” sonucunu dönderecektir.Örnek Kullanımı ise aşağıdaki gibidir.Örnek olarak bir önceki yazımda bahsettiğim kod parçacığı üzerinden devam edicem.
Select upper (alan1) from Ornek where alan1 like '%_e_u%' |
Çıktısı : MESUT
Lower Fonksiyonu: Bu fonksiyon Upper fonksiyonunun tam tersidir.Bu fonksiyonda verdiğiniz kolondaki veya metindeki tüm karakterlerin tümünü küçük harfe çevirir.MeSut kelimesini göstermek istersek sonuc mesut olarak geri döner.Örnek kod kullanımı aşağıdaki gibidir.
Select lower (alan1) from Ornek where alan1 like '%_e_u%' |
çıktısı : mesut şeklinde olacaktır.
Initcap fonksiyonu: Bu fonksiyon yukardaki fonksiyonlara benzer bir foksiyondur fakat onlardan daha çok kullanılır ve tercih edilir.Bu fonksiyonda yolladığımız karışık metindeki kelimelere bakıyor ve boşluklara bakarak kelimenin ilk harfini büyük yapıyor.Örnek kullanımı aşağıdaki gibidir.”Mesut PEk Test CümleciĞi” şeklindeki metnimiz üzerinde kullanılmıştır.
Select Initcap(alan1) from Ornek where alan1 like '%_e_u%' |
çıktısı : Mesut Pek Test Cümleciği
Değiştirici ve yorumlayıcılar
Length Fonksiyonu : Bu fonksiyon ile cümlemizin içeriğinde kaç tane harf var onu buluyoruz.Kullanım olarak LENGTH(KOLON ) veya Length(‘Cümle’) olarak parametreler alır ve sonuç olarak bir sayı döndürür.Örnek Kullanımı :
Select LENGTH(alan1), '-' ,alan1, '-' ,alan2 from Ornek where alan2 like '%pek%' ; |
Çıktısı: 24 – Mesut PEk Test CümleciĞi – pek şeklinde olacaktır.
Substr Fonksiyonu : Bu fonksiyon ile cümlenin içinden indis olarak verdiğimiz değerden itibaren vereceğimiz ikinci değer kadar karakter sayıp bize geri döndürür. Fonksiyonu Substr(‘Cümlemiz veya kolon adı’,Başlangıç indisi,alınacak karakter sayısı ) şeklinde bir yapısı vardır.Örnek olarak kod ile kullanımına bakalım;
Select SUBSTR(alan1,0,7) from Ornek where alan2 like '%pek%' ; |
çıktısı : Mesut P –> 0.indisten başladı ve 7.indise kadar değer aldı.
Instr Fonksiyonu : Bu fonksiyon ile bir cümle içinde harf arıyoruz ve girdiğimiz tekrar eden harfin indis numarasını buluyoruz.Yani “mesut” kelimesinde t harfi kaçıncı indis veya “mesut t ” kelimesinde 2 kez tekrar eden t kaçıncı indisi bunu bulabiliyoruz.Kullanım olarak INSTR(Kelime veya Kolon ,’aradığımız harf ‘,başlangıç pozisyonu ,tekrar indisi) olaraktır.Örnek kod kullanımı ise aşağıdaki gibidir.
Select INSTR(alan1, 't' ,1,2),ALAN1 from Ornek where alan2 like '%pek%' ; |
Çıkıtıs : 14 Mesut PEk Test CümleciĞi
Concat Fonksiyonu : Bu Fonksiyon 2 değer alır ve string ifadeleri birleştirmede kullanılır.Concat(Deger1,Deger2) olarak kullanımı vardır.Buradan örnek kullanımını inceleyebilirsiniz.
select concat( 'Mesut ' , 'PEK' ) from DUAL |
Çıktısı : Mesut PEK
Rpad Fonksiyonu : Bu fonksiyon ile belirli bir indis aralığından sonra değer yok ise o indise kadar belirttiğiniz değeri atıyor fakat o indisden az ise değeriniz kelimeyi cümleyi o indiste kesiyor.Örneğin 6 harfli bir kelimenin 5.indisten başla dediyseniz son harfini atıyor,eğer 8 verdiyseniz indisi tamamlamak için ona belirttiğiniz değeri atıyor. Kullanımı Rpad(cümle,indis numarası,yazılacakdeğer) şeklindedir.
Select rpad(alan1,33, '*' ) from Ornek where alan2 like '%pek%' ; |
çıktısı :Mesut PEk Test CümleciĞi*********
Select rpad(alan1,10, '*' ) from Ornek where alan2 like '%pek%' ; |
çıktısı :Mesut PEk
Lpad Fonksiyonu : Bu fonksiyon yukarıda bahsettiğim rpad fonksiyonunun benzeridir.Bu fonksiyonda Cümle belirttiğiniz indisten küçükse sol tarafına belirttiğiniz değeri atar eğer büyükse o indise kadar olan kısımı alır ve keser.Kullanımı Llpad(cümle,indis numarası,yazılacakdeğer) şeklindedir. Kod ile gösterimi ;
Select lpad(alan1,33, '*' ) from Ornek where alan2 like '%pek%' ; |
çıktısı :*********Mesut PEk Test CümleciĞi
Select lpad(alan1,10, '*' ) from Ornek where alan2 like '%pek%' ; |
çıktısı :Mesut PEk
Trim Fonksiyonu : Bu fonksiyon ile boşluk veya diğer benzeri nesnelerin temizlenmesinde kullanılır.Genel kullanımı Trim(‘Aranacakdeğer’ from ‘aranılacakdeğer’) şeklindedir.Örnek kod kullanımı aşağıdaki gibidir.
Select trim( '*' from Alan1), ' - ' ,alan1 from Ornek where alan2 like '%pek%' ; |
çıktısı: Mesut PEk Test CümleciĞi – **Mesut PEk Test CümleciĞi **
Replace Fonksiyonu : Bu fonksiyon ile cümle arasındaki kelime veya harfların değiştirilmesini sağlıyor.mesut adında bir kelimemiz olsun me yerine boşluk yazdıralım.Replace(‘mesut’,’me’,’ ‘) .Kullanımı yanda belirttiğimiz üzere Replace(anadeğer,aranandeğer,değiştirilecekdeğer).Yukardakinde sadece noktalama gibi işaretler kullanılırken bunda tüm harf ve işaretler kullanılabilir.
örnek kod :
Select replace (Alan1, '*' , '-' ), ' - ' ,alan1 from Ornek where alan2 like '%pek%' ; |
çıktısı : –Mesut PEk Test CümleciĞi — – **Mesut PEk Test CümleciĞi **