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

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

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

    Decode360's Blog

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

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    NLS_DATE_FORMAT參數研究
    ?
    ?
    ??? 今天想設置一下NLS_DATE_FORMAT參數來更改一下date參數的輸出格式,之前的 DATE類型默認格式的設置 這篇文章里也談到這個問題,當時認為既然可以用alter session來做,那么修改DB參數也是比較方便的,其實不然,具體可以看一下下文:
    ?
    ??? 首先看當前的格式:
    ?
    SQL> select sysdate from dual;
    ?
    SYSDATE
    ---------
    07-NOV-08
    ?
    ??? 剛開始SPFILE里沒有配置NLS_DATE_FORMAT參數的,用了ALTER SYSTEM ... SCOPE=SPFILE居然報錯:
    ?
    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
    ?
    ?
    ??? 在查閱文檔后,發現這個參數確實不能通過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,加進了NLS_DATE_FORMAT參數:
    ?
    SQL> select name,value,isspecified from v$spparameter where name='nls_date_format';
    ?
    NAME???????????? VALUE???????? ISSPEC
    ----------?????? ----------??? -------------------------
    nls_date_format? YYYY-MM-DD??? TRUE
    ?
    ?
    ??? 雖然Oracle里的參數換了,但是查詢后的顯示結果任然是一樣的:
    ?
    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參數主要還是受到OS的影響,每次登錄時會將OS的NLS_DATE_FORMAT參數加載進去。
    ??? 基本上除了修改環境變量就只能通過alter session來修改了,暫時還沒有找到好一點的辦法。
    ?
    ?
    ??? 要注意并不單是顯示上的問題,而是在內部存儲的值也會被覆蓋:
    ?
    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
    ?
    ??? 在沒有修改環境變量或session參數時,這個語句是無法執行的。修改后可以執行:
    ?
    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) 評論(0)  編輯  收藏 所屬分類: 07.Oracle
    主站蜘蛛池模板: 中文字幕精品亚洲无线码一区| 猫咪社区免费资源在线观看| 亚洲另类无码专区丝袜| 中国人xxxxx69免费视频| 亚洲日韩图片专区第1页| 欧洲人免费视频网站在线| 亚洲性天天干天天摸| 无码人妻一区二区三区免费n鬼沢| 亚洲AV无码久久| 亚洲人成免费电影| 亚洲综合色成在线播放| 一级女人18片毛片免费视频| 免费A级毛片无码A∨男男| 一级A毛片免费观看久久精品| 老司机在线免费视频| 亚洲性无码AV中文字幕| 亚洲av麻豆aⅴ无码电影| 亚洲av午夜精品无码专区| 大学生一级毛片免费看| 亚洲高清毛片一区二区| 亚洲?V乱码久久精品蜜桃| 黄桃AV无码免费一区二区三区| 亚洲国产成人一区二区三区| 久久精品乱子伦免费| 亚洲熟女www一区二区三区| 四虎永久精品免费观看| 久久国产精品免费一区二区三区 | 十八禁视频在线观看免费无码无遮挡骂过| 亚洲国产精品成人| 久久精品成人免费看| 亚洲狠狠ady亚洲精品大秀| 日本免费中文字幕在线看| 免费萌白酱国产一区二区三区 | 亚洲AV之男人的天堂| 国精产品一区一区三区免费视频 | 久久久久久AV无码免费网站下载| 亚洲区精品久久一区二区三区| 无码国模国产在线观看免费| 国产特黄一级一片免费| 亚洲乱码中文论理电影| 亚洲AV综合色区无码二区爱AV|