前幾天,要建立一個函數索引,遇到的一些奇怪問題,讨論連結在
這裡:http://www.itpub.net/480995.html
yangtingkun給出了很好的解析與例子記錄如下:
http://blog.itpub.net/post/468/50898
轉載:明白了Oracle所定義的規則。由于英文會出現首字母大寫的情況,是以Oracle在判定的時候首先判斷第一位的大小寫狀态,如果是小寫,就不繼續判斷後面的内容了,而把整個字元串都當作小寫。如果第一位是大寫,Oracle繼續判斷第二位,如果也是大寫,那麼Oracle就把整個字元串都當作大寫,如果第二位是小寫,則Oracle認為這種情況是首字母大寫,就把第一個字母當作大寫,而剩餘字元做小寫出來。
如果有興趣可以對SELECT TO_CHAR(SYSDATE, 'Month') FROM DUAL;進行測試,不管給出的Month的大小寫如何變,Oracle的輸出結果隻有三種,大寫、小寫和首字母大寫。
SQL> SELECT TO_CHAR(SYSDATE, 'Month') FROM DUAL;
TO_CHAR(S
---------
January
SQL> SELECT TO_CHAR(SYSDATE, 'MOnth') FROM DUAL;
JANUARY
SQL> SELECT TO_CHAR(SYSDATE, 'MoNTH') FROM DUAL;
SQL> SELECT TO_CHAR(SYSDATE, 'mONTH') FROM DUAL;
january