Concatenation Operator

Bu fonksiyon ile tablodaki iki sütunu birbirine bağlayabiliriz. Bağlama işlemini yapmak için iki dikey çizgi karekterini (“||”) kullanırız. Örnek olarak bir sorgu yazalım.

select first_name||last_name from employees
sorgunun sonucu ise bu şekilde olacaktır.

Bu şekilde iki sütunu birleştirdiğimiz gibi concat fonksiyonuyla da birleştirebiliriz. Uyguladığınız zaman yine aynı sonucu verdiğini göreceksiniz.

select concat(last_name,first_name) from employees

İlk örnekte bahsettiğimim yazım hatasını ise sql sorguyu şu şekilde düzenlersek çözülecektir.
select concat (first_name, concat(‘ ‘,last_name)) from employees

String Karakter
Oracle da string bir ifade aramak istiyorsak şu şekilde bir sql cümle yazmalıyız.

select first_name ,email from employees where first_name=’Bruce’

ASCII Fonksiyonları
Fonksiyon başlığından da anlaşılacağı gibi karakterlerin ASCII kodlarını bu fonksiyon sayesiyle bulabiliriz. Aşağıda ASCII fonksiyonunun syntaxını ve örneğine bakabilirsiniz.

ASCII Syntax

select ascii (‘A’) from dual



Karakter Fonksiyonu
Bu fonksiyonu kullanarak ise ASCII kodunu yazdığımız bir karakterin değerini bulabiliriz.

Karakter Syntax:
CHR(n PLS_INTEGER) RETURN VARCHAR2;
select chr(65) from dual

COALESCE Fonksiyonu
Değerler listesindeki ilk dolu (NULL olmayan) değeri bize döndüren komuttur. Bu sorguyu yazarken yazdığımız sütunların veri türleri ortak olmalı yani sütunlar ya string ifade olmalı yada number iki türü ortak yazamayız.

COALESCE Syntax:
COALESCE(Sütun, Sütun, Sütun, …) Örnek olarak gösterebilmek için kisiler adında bir tablo oluşturdum. İçindeki değerleri ise aşağıda gördüğünüz şekilde doldurdum.

SELECT COALESCE(adi, soyadi,email) FROM kisiler
yazdığım bu sql cümlesine gore null olmayan ilk dolu satırı bize verecek.

UNISTR Fonksiyonu
UNI karakterleri almak için kullandığımız fonksiyon türüdür. En çok kullanılan UNI karakterler ve kodları şunlardır.

UNISTR Syntax:
unistr(UNI Karakter numarası)
unistr(‘300’) grave accent ( ` )
unistr(‘301’) acute accent ( ´ )
unistr(‘302’) circumflex ( ^ )
unistr(‘303’) tilde ( ~ )
unistr(‘308’) umlaut ( ¨ )
Bu konuyla ilgili örnek aşağıda anlatılan compase fonksiyonu içinde anlatılacaktır.

Compase Fonksiyonu


Compase Syntax:
COMPOSE(metin_veya_sütun)
Özel karakterleri almak için kullanılan fonksiyondur. Örneğin; â,é gibi karakterleri almak için kullanılabilir.
Aşağıdaki gibi bir sorgu yazdığımızda e karakteri é şeklini alacaktır.

SELECT COMPOSE(‘e’ || UNISTR(‘\0301’)) FROM dual;

Convert Foksiyonu


Convert fonksiyonu ile databasemizin karakter setini değiştirebiliriz.Acıcak olursak örneğin databasenizde türkçe karakter içermeyen karakterler var ve siz bunları türkçe karaktere uygun hale getirmek istiyorsunuz böyle durumlarda convert fonksiyonu kullanılır.

Convert Syntax:
CONVERT(Varolan_Karakter_Dizini, Hedef_Karakter_Seti, Kaynak_Karakter_Seti)
Örnek sorgu ve dönen sonuç

SELECT CONVERT(‘Ä Ê Í Õ Ø Z G Ü’,’US7ASCII’,’WE8ISO8859P1′) FROM dual;

İncelersek kaynak karakter setinde olmayan karakterler ? olarak döndü. Diğerleri ise uygun karakterlere dönüştürüldü.

Soundex Fonksiyonu
Aldığı string parametresine gore satırlar arasından 4 tane değer döndürür.

Soundex Syntax:
SOUNDEX(Metin_veya_Sütun);
Soundex fonksiyonu örneği için ilk olarak bir tablo oluşturuyoruz.
CREATE TABLE soundex_örnek(
name VARCHAR2(15));
daha sonra tablomuza bir birine yakın karakterler ekleyelim.

INSERT INTO soundex_örnek VALUES (‘Turgut’);
INSERT INTO soundex_örnek VALUES (‘turgat’);
INSERT INTO soundex_örnek VALUES (‘Targut’);
INSERT INTO soundex_örnek VALUES (‘Tavsur’);
INSERT INTO soundex_örnek VALUES (‘tavrut’);
INSERT INTO soundex_örnek VALUES (‘Turgat’);
INSERT INTO soundex_örnek VALUES (‘Taygur’);

Soundex fonksiyonu sorğumuz ise şu şekilde olsun.

SELECT * FROM soundex_örnek WHERE SOUNDEX(name) = SOUNDEX(‘Turgut’);
Döndürdüğü sonuç bu şekilde olur.

Translate Fonksiyonu 

Translate fonksiyonu, referans gösterilen ifadenin değiştirilecek karakterlerini, yeni karakterlere çevirir.


Translate Syntax:
TRANSLATE(İfade, degiştirilecek_karakterleri, yeni_karakterler)
Örnek: select translate(‘Neena’,’Nee’,’NAA’) from employees where employee_id=101

Replace Fonksiyonu
Karekter içerisinde, aranacak karakteri bulur ve değiştirilecek karakter ile değiştirir.

Replace Syntax:
REPLACE( Karakter, Değiştirilecek_Karakter,Yerine_Geçecek_Karakter)

Örnek:
select replace(‘Steven’,’en’,’i’) Name from employees where employee_id=127

Sonuç;

Reverse Fonksiyonu
Reverse yazdığımız değeri tersten yazan fonksiyondur.

Reverse Syntax:
REVERSE()
Örnek olması amacıyla sizlere şu sorguyu hazırladım.
select first_name from employees where employee_id in (101,102,103,104)
Bu şekilde yazdığımızda employee_id si 101,102,103,104 olan kişilerin adlarını getirdi.

Birde bunu reverse ile yazalım ve dönen sonucumuzu inceleyelim.

select reverse(first_name) from employees where employee_id in (101,102,103,104)

Gördüğünüz gibi ters şekilde yazdırdı.

Sizlere bu makalede string fonksiyonlarını anlatmaya çalıştım. String fonksiyonları çok fazla ve sitede bazı fonksiyonlar paylaşıldığı için sizlere sadece bu kadar string fonksiyonlarını derledim.
Umarım faydalı bir yazı olmuştur. Takıldığınız noktaları yorum kısmında sorabilirsiniz.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir