Oracle Ders 22 – Single Row Functions – 02
Merhaba Arkadaslar,
Bu yazimda character manipulation functionlarindan bahsedecegim. Bir onceki dersimizde Single Row Functionlara giris yapmistik. Bu yazimda ;
- SUBSTR
- INSTR
- LENGTH
- LPAD ve RPAD
- LTRIM ve RTRIM
- REPLACE
- TRANSLATE
- CONCAT fonksiyonlarindan bahsedecegim.
SUBSTR fonksiyonu
Bir cok programlama dilinde mevcut olan substring yani ilgili stringten(katardan) belirli bir kesit alma islemi. Oracle da bu fonksiyona sahiptir.
select substr('levent erguder',3) from dual;
vent erguder
select substr('levent erguder',1,8) from dual;
levent e
select substr('levent erguder',-5,3) from dual;
gud
ciktilari inceleyecek olursa,k , birinci ornegimizde levent erguder uzerinde 3.karakterden sona kadar parcayi kesip cikartiyoruz. index degeri olarak 1den basladigina dikkat edin.
ikinci ornegimizde 1. karakterden sonra 8 karakter git ve kesitini al diyoruz.Boslugu ihmal etmiyoruz.
ucuncu ornegimizde ise eksi index verdik bu durumda soldan degil ters taraftan index degeri aliyor. yani -5. index g harfidir , g harfiyle birlikte 3 karakter al ve kesitini cikart diyoruz.
INSTR fonksiyonu
INSTR fonksiyonu (in string ) anlamina gelmektedir. Bir string icerisinde , string arama islemine yaramaktadir.
select instr('levent erguder','e') from dual;
2
select instr('levent erguder','e',5) from dual;
8
select instr('levent erguder','e',5,2) from dual;
13
Birinci ornegimizde e karakterini levent erguder string degerinde ariyoruz, INSTR fonksiyonunun bu formunda ilk buldugu sonucu dondurecektir.
Ikinci ornegimizde e karakterini , 5. karakterden sonra aramaktadir.(5.karakter dahildir)
Ucuncu ornegimizde e karakterini, 5. karakterden sonra 2.defa gectigi index degerini dondurmektedir.
Bu fonksiyon ile tek karakter degil bir kelime aramamiz da mumkundur.
LENGTH fonksiyonu
Diger programlama dillerinden de asina oldugumuz bu metot Oracle’da da mevcuttur.
select length('levent erguder') from dual;
14
LPAD ve RPAD fonksiyonlari
select lpad ('levent',10,'Xx') , rpad ('erguder',10,'Y') from dual;
XxXxlevent erguderYYY
LPAD metodu , aldigi string argumanini, 2.arguman uzunlugunda bir karaktere donusturur. Bunu yaparken de 3.argumani , 1.argumanin soluna ekler.
RPAD metodu sol tarafa eklemek yerine sag tarafa ekler.
Eger 1.argumandan daha kucuk bir sayi verirsek, karakter eklemek yerine karakterlerimizi kirpar 🙂
LTRIM VE RTRIM fonksiyonlari
LTRIM ve RTRIM fonksiyonlari ilgili string degerinden , karakter silmeye yarar. Trim islemi tum string boyunca devam etmez soldan veya sagdan baslayarak gerceklestirilir, kesintiye ugradiginda islem sonlanir.
select ltrim(' levent' ) from dual; select ltrim(' levent',' ') from dual; select ltrim('000012345000','0') from dual; select ltrim('456456Levent456','456') from dual; select rtrim('456456Levent456','456') from dual;
12345000
000012345
3.sorgumuzun ve 4.sorgumuzun sonucu. Trim islemi 3.sorgu icin 1 karakteri gelince kesintiye ugrar ve devam etmez , 4.sorgu icin 5 karakteri gelince kesintiye ugrar ve devam etmez.
REPLACE fonksiyonu
Replace metodu, bul ve yerini degistirme gorevini ustlenmektedir.
select replace ('the best is XyX','XyX','java') from dual;
1. string degerde , 2.arguman olarak verilen string degeri varsa bul ve 3. arguman ile degistir.
the best is java
TRANSLATE fonksiyonu
Ilk bakista replace fonksiyonuna benzemektedir. Translate fonksiyonu , karakterin degerini yeni bir karakterle degistirmeye yarar.
select translate ('the best is XyX','XyX','ja') from dual;
the best is jaj
X karakteri j harfi ile, y karakteri a harfi ile yer degisti. XyX —> jaj
select translate ('Xyzt','Xyzt','java') from dual;
java
CONCAT fonksiyonu
Daha onceki derslerde || operatorunu gormustuk . Bu operator birden fazla string literalini birlestirmeye yaramaktadir. Bu gorevin aynisini yapan fonksiyon CONCAT fonksiyonudur.
select concat('levent','erguder') from dual;
leventerguder
select concat(concat('in','java'),concat('we','trust')) from dual;
injavawetrust
Yazima burada son veriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
injavawetrust
Leave a Reply