Türkçe Upper
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:
Kaynak: http://www.csee.umbc.edu/portal/help/oracle8/server.815/a67789/appa.htm#958510
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
Yorumlar
select initcap('AMBARLI-TRIESTE') from dual
buradan Ambarlı-Trieste nasıl alabiliriz:)