Oracle’da Türkçe Upper Komutu

Oracle’ın büyük harfe çevir (upper), küçük harfe çevir (lower), ilk harfleri büyük yap (initcap) fonksiyonları bildiğiniz ya da deneyip görebileceğiniz gibi İngilizce kurallarına göre çalışmaktadır. Örneğin elinizde “ismail” ismi, “bilir” soyadı olsun. Bu değerleri ismi initcap, soyadı ise upper ile çevirirseniz aşağıdaki sonuçla karşılaşırsınız:

select initcap(‘ismail’) || ‘ ‘ || upper(‘bilir’) “Ad Soyad”from dual;

Ad Soyad
————
Ismail BILIR
1 row selected.

Elde ettiğimiz çıktı “Ismail BILIR” oldu. Bizim istediğimiz çıktı ise “İsmail BİLİR” olacaktı. Bu durumda oracle’ın nls_ ile başlayan functionları devreye giriyor:

select nls_lower(‘İSİM: ‘, ‘NLS_SORT = XTURKISH’) || nls_initcap(‘ismail’, ‘NLS_SORT = XTURKISH’) || ‘ ‘ || nls_upper(‘bilir’, ‘NLS_SORT = XTURKISH’) “Ad Soyad”from dual;

Ad Soyad
——————
isim: İsmail BİLİR
1 row selected.

Göreceğiniz gibi istediğimiz şekilde türkçe dil kurallarına uygun olarak dönüşüm işlemlerimizi gerçekleştirebildik. nls_sort parametresi için kullanabileceğiniz değerleri aşağıdaki tablonun extended name kısmında karşılık gelen değerlerden görebilirsiniz:

Basic Name  Extended Name  Special Cases 
CATALAN XCATALAN æ, AE, ß
CROATIAN XCROATIAN D, L, N, d, l, n, ß
CZECH XCZECH ch, CH, Ch, ß
DANISH XDANISH A, ß, Å , å
DUTCH XDUTCH ij, IJ
FRENCH XFRENCH
GERMAN XGERMAN ß
GERMAN_DIN XGERMAN_DIN ß, ä, ö, ü, Ä, Ö, Ü
HUNGARIAN XHUNGARIAN cs, gy, ny, sz, ty, zs, ß, CS, Cs, GY, Gy, NY, Ny, SZ, Sz, TY, Ty, ZS, Zs
PUNCTUATION XPUNCTUATION
SLOVAK XSLOVAK dz, DZ, Dz, ß (caron)
SLOVENIAN XSLOVENIAN ß
SPANISH XSPANISH ch, ll, CH, Ch, LL, Ll
SWISS XSWISS ß
TURKISH XTURKISH æ, AE, ß
WEST_EUROPEAN XWEST_EUROPEAN ß

Kaynak: http://www.csee.umbc.edu/portal/help/oracle8/server.815/a67789/appa.htm#958510

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s