Blog Arşivleri

NLS_UPPER & NLS_LOWER


Oracleda büyük ve küçük harf çevirimlerinde her zaman UPPER ve LOWER fonksiyonlarını kullanarak istediğimiz sonuç alamayabiliriz. Özellikle ulusal dillerde olan özel karakterlerde UPPER ve LOWER fonksiyonları istenen sonuçları vermez. Örneğin;

SELECT UPPER (‘i’)   FROM DUAL;

U

I
1 row selected.

SELECT LOWER(‘I’)   FROM DUAL;

L

i
1 row selected.

ilk sorguyu çalıştırdığımızda dönen sonucun İ olmasını bekler bize I olarak döner.  İkinci sorguda yine benzer şekilde ı dönmesini beklerken oracle bize i olarak geri dönüş verir. Bu gibi durumlarda dönüşümleri oracle yerel karaktersetine göre yapmaktadır. Yerel karaktersete özgü büyük ve küçük harf dönüşümleri için NLS_UPPER ve NLS_LOWER fonksiyonlarını kullanmalıyız.  NLS_UPPER ve NLS_LOWER kullanımında ise dönüşüm yapılacak dili NLS_SORT ile belirtiriz.

SELECT NLS_UPPER (‘i’, ‘NLS_SORT =xturkish’) FROM DUAL;
N

I
1 row selected.

SELECT NLS_LOWER (‘I’, ‘NLS_SORT =xturkish’) FROM DUAL;

N

ı
1 row selected.

Reklamlar