天天看點

關于函數索引的問題?

前幾天,要建立一個函數索引,遇到的一些奇怪問題,讨論連結在

這裡: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