<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 :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      302 隨筆 :: 26 文章 :: 82 評(píng)論 :: 0 Trackbacks
    ??? 今天想設(shè)置一下NLS_DATE_FORMAT參數(shù)來更改一下date參數(shù)的輸出格式,但是遇到了問題:
    ?
    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è)語句是無法執(zhí)行的。修改后可以執(zhí)行:
    ?
    SQL> select to_date(to_char(sysdate,'yyyy-mm-dd')) from dual;
    ?
    TO_DATE(TO
    ----------
    2008-11-10




    -The End-

    posted on 2008-11-02 19:58 decode360-3 閱讀(1418) 評(píng)論(1)  編輯  收藏 所屬分類: Oracle

    評(píng)論

    # re: NLS_DATE_FORMAT參數(shù)[未登錄] 2009-12-20 20:31 Frank
    呵呵,樓主搞混了
    其實(shí)nls_date_format參數(shù)(也包括其他nls_參數(shù))是分服務(wù)器端和客戶端的.

    樓主想要獲得查詢的格式是yyyy-mm-dd,那么只有alter session和修改windows鍵值是其作用的.修改oracle啟動(dòng)參數(shù)是與查詢無關(guān)的,那是數(shù)據(jù)庫表內(nèi)date類型插入需要的格式.  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 亚洲av再在线观看| 91香蕉国产线在线观看免费| 成人毛片18岁女人毛片免费看| 亚洲狠狠综合久久| 2019中文字幕免费电影在线播放 | 亚洲国产精品综合福利专区| 97在线视频免费播放| 亚洲精品成人av在线| 4399影视免费观看高清直播| 亚洲春色另类小说| 国内一级一级毛片a免费| 亚洲欧洲AV无码专区| 国产大片91精品免费观看男同| 精品国产亚洲AV麻豆| 亚洲欧洲久久久精品| 爽爽爽爽爽爽爽成人免费观看 | 亚洲性69影院在线观看| 九九精品免费视频| 亚洲成AV人片在WWW| 亚洲日本一区二区一本一道| 成人免费一区二区三区| 亚洲视频2020| 免费人成视频在线| 一本大道一卡二大卡三卡免费| 亚洲精品亚洲人成人网| 蜜臀AV免费一区二区三区| 亚洲中文字幕无码久久2020| 又大又粗又爽a级毛片免费看| 久久久久久久久久免免费精品| 久久亚洲精品中文字幕| 蜜桃视频在线观看免费网址入口| 日日摸日日碰夜夜爽亚洲| 亚洲日韩一页精品发布| 免费观看无遮挡www的视频| 亚洲国产成人久久精品大牛影视| 久久亚洲色一区二区三区| 国产成人精品免费视频动漫 | 99视频全部免费精品全部四虎| 亚洲AV无码AV日韩AV网站| 亚洲精品国产字幕久久不卡| 免费下载成人电影|