<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)系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    ORACLE中的時區(qū)
    ?
    ??? 轉(zhuǎn)一篇文章,感覺特別好。格式優(yōu)雅、內(nèi)容完整、回答明確,所有都很合我意,所以特地搬到自己博客中留存。
    ?
    ?
    1. How to check the session time zone ?
    =======================================
    Answer
    ------
    The new SESSIONTIMEZONE built-in SQL function returns the value of the current
    session's time zone.
    SQL> SELECT SESSIONTIMEZONE FROM DUAL;

    SESSIONTIMEZONE
    ---------------
    +01:00


    2. How to set the session time zone ?
    =====================================
    Answer
    ------
    The session time zone can be set to:
    - O/S local time zone
    - Database time zone
    - An absolute offset
    - A named region

    1. The first method consists to use one of the following ALTER SESSION SET
    TIME_ZONE statements:
    SQL> ALTER SESSION SET TIME_ZONE = local;
    SQL> ALTER SESSION SET TIME_ZONE = dbtimezone;
    SQL> ALTER SESSION SET TIME_ZONE = '-05:00';
    SQL> ALTER SESSION SET TIME_ZONE = 'Europe/London';

    2. As an alternative, the operating system environment variable ORA_SDTZ can
    also be used to set the session time zone:
    ORA_SDTZ = 'OS_TZ' | 'DB_TZ' | '[+ | -] hh:mm' | 'timezone_region'

    Example:
    $ ORA_SDTZ='OS_TZ'
    $ export ORA_SDTZ

    $ ORA_SDTZ='-05:00'
    $ export ORA_SDTZ


    3. How to check the database time zone ?
    ========================================
    Answer
    ------
    The DBTIMEZONE SQL function returns the value of the database time zone.

    SQL> SELECT DBTIMEZONE FROM DUAL;

    DBTIMEZONE
    --------------
    Europe/Lisbon

    @ Note that the database timezone is also included in both database_properties
    @ and props$ views:
    @ SQL> SELECT property_name, property_value
    @ FROM database_properties
    @ WHERE property_name='DBTIMEZONE';
    @ and
    @ SQL> SELECT name, value$
    @ FROM props$
    @ WHERE name='DBTIMEZONE';
    @ Be aware that you should not rely on these views because in case of db time zone
    @ change, these views reflect the new db time zone too early: they should reflect
    @ it only after database shutdown and restart.


    4. How to set the database time zone ?
    ======================================
    Answer
    ------
    Note that the database time zone is only relevant for TIMESTAMP WITH LOCAL TIME ZONE
    columns.

    1. At creation time
    SQL> CREATE DATABASE ...
    SET TIME_ZONE='Europe/London';
    If not specified with the CREATE DATABASE statement, the database time zone
    defaults to the server O/S timezone offset.

    2. After database creation, use the ALTER DATABASE SET TIME_ZONE statement and
    then shut down and restart the database.
    SQL> ALTER DATABASE SET TIME_ZONE = '-05:00';
    SQL> ALTER DATABASE SET TIME_ZONE = 'Europe/Lisbon';
    The change will not take effect until the database is bounced.


    5. How to list the valid time zone regions ?
    ============================================
    Answer
    ------
    SQL> SELECT * FROM v$timezone_names;

    TZNAME ??????????????????????????? TZABBREV
    ------------------------------ ----------
    Pacific/Tahiti ????????????????? LMT
    Poland ?????????????????????????? LMT
    US/Pacific ????????????????????? PST
    Europe/Zurich ?????????????????? CET
    ...

    The result will depend on which timezone file is currently in use.
    See Q&A 7-8 for further details.


    6. How to retrieve the time zone offset corresponding to a time zone region ?
    =============================================================================
    The new 9i TZ_OFFSET() SQL function returns the time zone offset displacement
    to the input time zone region.

    SQL> SELECT TZ_OFFSET('Europe/London') FROM DUAL;

    TZ_OFFS
    -------
    +01:00

    The returned offset depends on the date this statement is executed.
    For example, in the 'US/Pacific' time zone, it may return '-07:00' or '-08:00'
    whether daylight saving is in effect or not.

    SQL> SELECT TZ_OFFSET(SESSIONTIMEZONE), TZ_OFFSET(DBTIMEZONE) FROM DUAL;
    returns the time zone offset corresponding to the time zone set for session
    and database.

    TZ_OFFS TZ_OFFS
    ------- -------
    +01:00 +00:00


    7. How to use a larger set of defined time zones ?
    ==================================================
    2 different time zone files contain for each zone the offset from UTC,
    the transition times for daylight savings and abbreviation :

    - ORACLE_HOME/oracore/zoneinfo/timezone.dat
    This is the default and contains the most commonly used time zones.
    This is the smallest file.

    - ORACLE_HOME/oracore/zoneinfo/timezlrg.dat
    This file contains the larger set of defined time zones and can be used
    if you require time zones that are not defined in the default time zone file.


    To enable the use of this larger time zone data file :

    1. Shutdown the database

    2.1 On UNIX platforms :
    set the ORA_TZFILE environment variable to the full pathname of
    the location for the timezlrg.dat. By default, this should be
    $ORACLE_HOME/oracore/zoneinfo/timezlrg.dat:

    $ setenv ORA_TZFILE $ORACLE_HOME/oracore/zoneinfo/timezlrg.dat

    2.2 On Windows systems :
    You should add an ORA_TZFILE registry subkey for each of your Oracle Homes
    with the Windows Registry Editor:
    Start -> Run...
    Type "regedit", and click "ok"
    Add or edit the following registry entry:
    HKEY_LOCAL_MACHINE>SOFTWARE>ORACLE>HOMEid>ORA_TZFILE
    where ID is the unique number identifying the Oracle home.

    Set the ORA_TZFILE to the full pathname of the location for the timezlrg.dat:
    By default, the value should be %ORACLE_HOME%oracorezoneinfotimezlrg.dat

    3. Restart the database

    Once the larger timezlrg.dat is used, it must continue to be used unless the
    user is sure that none of the non-default zones are used for data that is stored
    in the database.
    Also, all databases that share information should use the same time zone data
    file.

    Be aware that you can neither create nore alter these timezone definition files !


    8. Which timezone-set is currently used ?
    =========================================
    Beside checking the UNIX ORA_TZFILE parameter or the Windows registry subkey,
    you can easily check whether you are using the large or the default timezone
    file with the following query:

    SQL> SELECT COUNT(*) FROM v$timezone_names;

    If the default-smallest timezone region file is in use, it will return:

    COUNT(*)
    ----------
    616 (in 9.0.1.x and 9.2.x)

    or

    COUNT(*)
    ----------
    1250 (in 9.0.1.x and 9.2.x)

    if the largest file is in use.


    9. Can customers rely on Oracle time zones ?
    ============================================
    Timezone.dat and timezlrg.dat are based on information maintained by the U.S. Navy
    Observatory.
    posted on 2009-01-29 21:01 decode360 閱讀(933) 評論(0)  編輯  收藏 所屬分類: 07.Oracle
    主站蜘蛛池模板: 成年美女黄网站18禁免费| 男女一进一出抽搐免费视频| 99免费观看视频| 亚洲av无码成人黄网站在线观看| 成人无码区免费A∨直播| 在线日韩日本国产亚洲| g0g0人体全免费高清大胆视频| 香蕉视频在线免费看| 国产V片在线播放免费无码| 亚洲Av无码乱码在线播放| 国产亚洲午夜精品| 亚洲第一页综合图片自拍| 九九综合VA免费看| 国产亚洲精品a在线无码| 免费一级毛片无毒不卡| 亚洲成a人不卡在线观看| 久久电影网午夜鲁丝片免费| 337p日本欧洲亚洲大胆人人 | 国产精品免费视频观看拍拍| 亚洲色偷偷综合亚洲AVYP| 日本免费污片中国特一级| 亚洲福利电影一区二区?| 大学生高清一级毛片免费| 女人裸身j部免费视频无遮挡| 亚洲熟女一区二区三区| 麻豆高清免费国产一区| 亚洲精品中文字幕| 永久亚洲成a人片777777| 免费国产污网站在线观看15| 国产成人亚洲综合网站不卡| 亚洲精品国产高清不卡在线| 四虎必出精品亚洲高清| 57pao国产成视频免费播放| 久久精品国产亚洲av麻豆蜜芽| 免费看国产一级特黄aa大片| 免费在线观影网站| 国产成人精品亚洲日本在线| 亚洲第一页日韩专区| 中国人xxxxx69免费视频| 免费无码国产V片在线观看| 亚洲精品线在线观看|