<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評(píng)論 :: 0 Trackbacks
    NLS_DATE_FORMAT參數(shù)研究
    ?
    ?
    ??? 今天想設(shè)置一下NLS_DATE_FORMAT參數(shù)來更改一下date參數(shù)的輸出格式,之前的 DATE類型默認(rèn)格式的設(shè)置 這篇文章里也談到這個(gè)問題,當(dāng)時(shí)認(rèn)為既然可以用alter session來做,那么修改DB參數(shù)也是比較方便的,其實(shí)不然,具體可以看一下下文:
    ?
    ??? 首先看當(dāng)前的格式:
    ?
    SQL> select sysdate from dual;
    ?
    SYSDATE
    ---------
    07-NOV-08
    ?
    ??? 剛開始SPFILE里沒有配置NLS_DATE_FORMAT參數(shù)的,用了ALTER SYSTEM ... SCOPE=SPFILE居然報(bào)錯(cuò):
    ?
    SQL> alter system set nls_date_format='YYYY-MM-DD' scope=spfile;
    ?
    alter system set nls_date_format='YYYY-MM-DD' scope=spfile
    ?
    ORA-02096: specified initialization parameter is not modifiable with this option
    ?
    ?
    ?
    ??? 但是使用ALTER SESSION是可以的:
    ?
    SQL> alter session set nls_date_format='yyyy-mm-dd';
    ?
    Session altered.
    ?
    SQL> select sysdate from dual;
    ?
    SYSDATE
    ----------
    2008-11-07
    ?
    ?
    ??? 在查閱文檔后,發(fā)現(xiàn)這個(gè)參數(shù)確實(shí)不能通過ALTER SYSTEM命令來修改:
    ?
    You can alter the default value of NLS_DATE_FORMAT by:
    ■ Changing its value in the initialization parameter file and then restarting the
    instance
    ■ Using an ALTER SESSION SET NLS_DATE_FORMAT statement
    ?
    ?????????????????????? --《Globalization Support Guide》
    ?
    ?
    ??? 修改了SPFILE,加進(jìn)了NLS_DATE_FORMAT參數(shù):
    ?
    SQL> select name,value,isspecified from v$spparameter where name='nls_date_format';
    ?
    NAME???????????? VALUE???????? ISSPEC
    ----------?????? ----------??? -------------------------
    nls_date_format? YYYY-MM-DD??? TRUE
    ?
    ?
    ??? 雖然Oracle里的參數(shù)換了,但是查詢后的顯示結(jié)果任然是一樣的:
    ?
    SQL> select sysdate from dual;
    ?
    SYSDATE
    ---------
    07-NOV-08
    ?
    ??? 在HKEY_LOCAL_MACHINE-SOFTWARE-ORACLE-HOME0中加入NLS_DATE_FORMAT鍵值后,查詢正常:
    ?
    SQL> select sysdate from dual;
    ?
    SYSDATE
    ----------
    2008-11-07
    ?
    ?
    ??? 看來NLS_DATE_FORMAT參數(shù)主要還是受到OS的影響,每次登錄時(shí)會(huì)將OS的NLS_DATE_FORMAT參數(shù)加載進(jìn)去。
    ??? 基本上除了修改環(huán)境變量就只能通過alter session來修改了,暫時(shí)還沒有找到好一點(diǎn)的辦法。
    ?
    ?
    ??? 要注意并不單是顯示上的問題,而是在內(nèi)部存儲(chǔ)的值也會(huì)被覆蓋:
    ?
    SQL> select to_date(to_char(sysdate,'yyyy-mm-dd')) from dual;
    select to_date(to_char(sysdate,'yyyy-mm-dd')) from dual
    ?????????????? *
    ERROR at line 1:
    ORA-01861: literal does not match format string
    ?
    ??? 在沒有修改環(huán)境變量或session參數(shù)時(shí),這個(gè)語(yǔ)句是無法執(zhí)行的。修改后可以執(zhí)行:
    ?
    SQL> select to_date(to_char(sysdate,'yyyy-mm-dd')) from dual;
    ?
    TO_DATE(TO
    ----------
    2008-11-10
    ?
    ?
    posted on 2008-11-02 19:58 decode360 閱讀(925) 評(píng)論(0)  編輯  收藏 所屬分類: 07.Oracle
    主站蜘蛛池模板: 亚洲人成色777777在线观看| 亚洲一级毛片免观看| 国产一精品一AV一免费孕妇| 久久WWW免费人成—看片| 日本在线看片免费| 特级毛片aaaa免费观看 | 国产免费人成视频尤勿视频| 在线综合亚洲中文精品| 亚洲视频中文字幕| 亚洲熟妇无码AV在线播放| 一级毛片直播亚洲| 午夜男人一级毛片免费 | 国产一卡2卡3卡4卡2021免费观看| tom影院亚洲国产一区二区| 亚洲成a人片在线观看日本| 亚洲精品视频免费| 免费国产a国产片高清| 好吊妞在线成人免费| 中文字幕免费在线看线人| 免费A级毛片av无码| 免费一区二区无码东京热| 国产精品hd免费观看| 亚洲日韩在线视频| 亚洲国产精品毛片av不卡在线| 大学生美女毛片免费视频| 久久久www成人免费毛片| 69式国产真人免费视频 | 国产 亚洲 中文在线 字幕| 亚洲午夜电影在线观看高清 | 免费在线观看视频网站| 国产成人精品免费午夜app| 蜜桃AV无码免费看永久| 久久成人国产精品免费软件| 2021精品国产品免费观看 | 久久亚洲春色中文字幕久久久| 亚洲高清在线播放| 老司机亚洲精品影院无码| 91嫩草私人成人亚洲影院| 亚洲精品视频久久| 亚洲人成精品久久久久| 久久精品国产精品亚洲蜜月|