Tags
Character-manipulation function, Databases, Oracle, Oracle Sql Concat, Oracle Sql Instr, Oracle Sql lenght, Oracle Sql lpad ve rpad, Oracle Sql replace, Oracle Sql Substr, Oracle Sql trim
Merhaba Arkadaşlar geçen yazımızda String Fonksiyonlardan(Character Functions)
Case-Conversion fonksiyondan(Lower,Upper,Initcap) bahsetmiştik bu yazımızda Character-manipulation fonksiyonlardan yani Concat,Substr,Lenght,Instr,Lpad ve Rpad,Trim ve Replace‘den bahsedeceğiz.Bu fonksiyonları kullanarak veri tabanımızdaki bilgilere çeşitli operasyonlar yapacağız.
Concat:
Concat fonksiyonu aynı vertical bar kullanımında olduğu gibi iki veriyi
birleştirerek görüntülememizi sağlar.
select concat(‘Merhaba’,’Dünya’) from dual;
Görüldüğü gibi verilen iki stringi birleştirdi.
select concat(first_name,last_name) from employees; Bu sorgumuzda’da employees tablosundaki first_name ve last_name alanlarını birleştirip monitör edecektir.
Substr:
Substr fonksiyonu seçilen datanın belirtilen kısmını almak için kullanılır.Bazı programcı arkadaşların kafası karışmasın oracle veri tabanında stringlerin
ilk karakteri 1 den başlar 0 dan değil.
select substr(‘HelloWorld’,1,5) from dual;
select substr(‘HelloWorld’,6,2) from dual;
select substr(‘HelloWorld’,-5,5) from dual;
Arkadaşlar görüldüğü gibi soldan sağa doğru ilk verilen değer kaçıncı sıradaysa ikinci verilen değer kadar sağa ilerliyor. Son örnekte -5 değeri verilmiş -5 dediği için bu kez sağdan 5 değer sola kayıp sonra 5 değer kadar tekrar sağa ilerleyecektir. Employees tablomuzdaki ortak örnek yazının sonunda.
Length:
Length seçilen datanın karakter uzunluğunu bize belirtir.Belirtilen
datanın içindeki bütün karakter alanlarını sayacaktır.(boşluk vb.)
select length(‘Merhaba Dünya’) from dual;
Görüldüğü gibi Merhaba ile Dünya arasındaki space(boşluk) dahil bütün karakter alanını saydı.
Instr:
Instr fonksiyonu ile belirtilen bir datanın içerisin’de belirtilen bir
karakterin kaçıncı sırada olduğunu bulur.Burada yine boşluk vb. sayılacaktır.
select instr(‘Merhaba Dünya’,’D’) from dual;
Lpad: Lpad fonksiyonu belirtilen datanın soluna belirtilen karakteri eklememize yardımcı olur.Datayı ve eklemek istediğimiz karakteri belirtip karakter uzunluğunu yazarak kullanabiliriz.
Select lpad(‘1000′,10,’$’) from dual;
Görüldüğü gibi ‘1000’ in soluna 10 karakteri tamamlayacak şekilde $ koyulmuştur.1000 den 4 karakter geldiği için 6 tanede $ gelmiştir.
Rpad:
Rpad aynı Lpad gibi belirtilen datanın yanına karakter eklememizi sağlar. Tek fark
isminden’de anlayacağınız gibi eklenecek olan karakteri datanın sağına ekler.
Select rpad(‘1000′,10,’$’) from dual;
Görüldüğü gibi ‘1000’ in sağına 10 karakteri tamamlayacak şekilde $ koyulmuştur.1000 den 4 karakter geldiği için 6 tanede $ gelmiştir.
REPLACE:
Replace belirtilen bir data içerisinde belirlenen bir karakterden sonraki
karakterleri alıp belirtilen bir karakterin arkasına yazmak için kullanılır.
Örnekle daha iyi anlayacaksınız..
select replace(‘JACK and JUE’,’J’,’BL’) from dual;
Burada ‘JACK and JUE’ daki J leri atıp yerine BL yazacaktır.
Trim:
Trim ismindende anlaşılacağı gibi belirtilen data içerisinde
istediğimiz karakteri eksiltmemizi sağlar.
select trim(‘M’ from ‘Merhaba Dünya’) from dual;
Arkadaşlar şimdi oracle veri tabanımız içerisindeki employees
tablomuz üzerinde yukarıdaki fonksiyonları kullanarak örnek yapalım.
SELECT employee_id, CONCAT(first_name, last_name) NAME,
job_id, LENGTH (last_name),
INSTR(last_name, ‘a’) “Contains ‘a’?”
FROM employees
WHERE SUBSTR(job_id, 4) = ‘REP’;
Arkadaşlar bu örnekte first_name ve last_name concat fonksiyonu ile
birleştirilip name aliası ile monitör edilecektir. Length(last_name)
diyerek çalışanlarımızın soy isimlerinin kaç karakter uzunluğunda olduğunu
ekrana monitör ediyoruz.instr(last_name,’a’) diyerek last_name alanının içerisine
bakıp a harfinin kaçıncı sırada olduğunu gösteriyor ve son olarak
Substr(job_id,4) diyerek hangi çalışanların job_id sinin 4. karakterinden
itibaren ‘REP’ vardır.Ekran çıktısı aşağıdaki gibidir.
Arkadaşlar bir sonraki yazımızda Number Function(Round,Trunc,Mod) bahsedeceğim.