Hatena::¥Ö¥í¥°(Diary)

¤Í¤é¡ÁIT¥¨¥ó¥¸¥Ë¥¢»¨µ­

2017-01-12

Oracle Database ¤Ë ¿·¤·¤¤¸µ¹æ(ǯ¹æ)¡ÖÌîµå¡×¤òÄɲ䷤Ƥߤ롣(NLS¥«¥ì¥ó¥À¡¦¥æ¡¼¥Æ¥£¥ê¥Æ¥£lxegen)

f:id:gonsuke777:20170112143918j:image
»þÂå¤ÏÌîµå¤ä¡ª×Ä(Žß)(Žß) Oracle Database ¤Î NLS¥«¥ì¥ó¥À¡¦¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤Ç
¿·¤·¤¤¸µ¹æ(ǯ¹æ)¡ÖÌîµå¡×¤òÄɲ䷤Ƥߤë¤ä¤Ç¡£¥Þ¥Ë¥å¥¢¥ë¤Ï²¼µ­¤ÎÄ̤ꡣ

Oracle Database¥°¥í¡¼¥Ð¥ê¥¼¡¼¥·¥ç¥ó¡¦¥µ¥Ý¡¼¥È¡¦¥¬¥¤¥É
12c¥ê¥ê¡¼¥¹1 (12.1) B71319-05
12 ¥í¥±¡¼¥ë¡¦¥Ç¡¼¥¿¤Î¥«¥¹¥¿¥Þ¥¤¥º
NLS¥«¥ì¥ó¥À¡¦¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ò»ÈÍѤ·¤¿¥«¥ì¥ó¥À¤Î¥«¥¹¥¿¥Þ¥¤¥º
http://docs.oracle.com/cd/E57425_01/121/NLSPG/ch13custlocale.htm#BABIBFBA
 > Oracle Database¤Ï¡¢Ê£¿ô¤Î¥«¥ì¥ó¥À¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£
 > ¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¡¢¤½¤ÎÃæ¤Ë¡¢º£¸å¤Î¸µ¹æ¤ÎÄɲä¬É¬Íפʤâ¤Î¤ä¡¢
 > ÃϰèŪ¤ÊÍ×·ï¤Ë¹ç¤»¤Æ¡¢¤¦¤ë¤¦Ç¯¤ÎÆü¿ô¤ÎÁý¸º¤¬É¬Íפʤâ¤Î¤¬¤¢¤ê¤Þ¤¹¡£

¤Þ¤º¤Ï¥µ¥ó¥×¥ë¤ÎÄêµÁ¥Õ¥¡¥¤¥ë¤ò¸«¤Æ¤ß¤ë¤ä¤Ç¡£¥Þ¥Ë¥å¥¢¥ë¤Ï²¼µ­¤ÎÄ̤ꡣ
http://docs.oracle.com/cd/E57425_01/121/NLSPG/ch13custlocale.htm#BABIBFBA
¥Æ¥­¥¹¥ÈÄêµÁ¥Õ¥¡¥¤¥ë¤Î̾Á°¤Èlxegen¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ËÂФ¹¤ë°ÌÃ֤ϡ¢¥×¥é¥Ã¥È¥Õ¥©¡¼¥à°Í¸¤ÎÃͤǥϡ¼¥É¥³¡¼¥É²½¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
UNIX¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î¾ì¹ç¡¢¥Õ¥¡¥¤¥ë̾¤Ïlxecal.nlt¤Ç¡¢$ORACLE_HOME/nls¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ê¤Þ¤¹¡£
¥Æ¥­¥¹¥ÈÄêµÁ¥Õ¥¡¥¤¥ë¤Î¥µ¥ó¥×¥ë¤Ï¡¢$ORACLE_HOME/nls/demo¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
¥Ç¥â¡¦¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥¹¥È¡¼¥ëÊýË¡¤Î¾ÜºÙ¤Ï¡¢¡ØOracle Database Examples¥¤¥ó¥¹¥È¥ì¡¼¥·¥ç¥ó¡¦¥¬¥¤¥É¡Ù¡Ù¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

Oracle Database Examples Linux x86-64ÈÇ ¤Î ¥À¥¦¥ó¥í¡¼¥É ¤Ï ²¼µ­¤«¤é¡£
¢¨²¼µ­¤Î¥ê¥ó¥¯¤Ï 2017/1/12»þÅÀ¤Î¤â¤Î¤Ç¤¹¡£
Oracle Database 12c Release 1 Examples (12.1.0.2.0) for Linux x86-64
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/database12c-linux-download-2240591.html?ssSourceSiteId=otnjp

Oracle Database Examples¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ë¤È¡¢
$ORACLE_HOME/nls/demoÇÛ²¼¤Ë¥µ¥ó¥×¥ë¤ÎÄêµÁ¥Õ¥¡¥¤¥ë¤¬Å¸³«¤µ¤ì¤Þ¤¹¡£²¼µ­¤Ï ¥µ¥ó¥×¥ëlxecal.nlt ¤ÎÈ´¿è¡£

-- ***************************************************************************
-- Here is an example on defining Emperors for a Imperial Calendar
-- ***************************************************************************
--
--      DEFINE calendar
--
--         calendar_name              = "Japanese Imperial"
--
--         DEFINE calendar_era
--            era_full_name           = bebccfc2
--            era_abbr_name           = 53
--            start_date              = "DEC-25-1926 AD"
--            end_date                = "jAN-07-1989 AD"
--         ENDDEFINE calendar_era
--
--         DEFINE calendar_era
--            era_full_name           = cabfc0ae
--            era_abbr_name           = 48
--            start_date              = "JAN-08-1989 AD"
--            end_date                = "DEC-31-2099 AD"
--         ENDDEFINE calendar_era
--
--      ENDDEFINE calendar
--

¡Öbebccfc2¡×¤ÏEUCʸ»ú¥³¡¼¥É¤Ç¡Ö¾¼Ï¡ס¢¡Öcabfc0ae¡×¤Ï¡ÖÊ¿À®¡×¤ËÂбþ¤·¤Þ¤¹¡£

SQL> select CONVERT(CHR(TO_NUMBER('bebccfc2', 'xxxxxxxx')), 'AL32UTF8', 'JA16EUC') from dual;

CONVERT(CHR(TO_NUMBE
--------------------
¾¼ÏÂ

SQL> select CONVERT(CHR(TO_NUMBER('cabfc0ae', 'xxxxxxxx')), 'AL32UTF8', 'JA16EUC') from dual;

CONVERT(CHR(TO_NUMBE
--------------------
Ê¿À®

¡ÖÌîµå¡×¤ËÂбþ¤¹¤ëEUCʸ»ú¥³¡¼¥É¤Ï¡Öcceeb5e5¡×¤Ê¤Î¤Ç¡¢
¤³¤¤¤Ä¤ò lxecal.nlt ¤Ëµ­½Ò¤·¤Æ¡¢$ORACLE_HOME/nlsÇÛ²¼¤ËÇÛÃÖ¤·¤Þ¤¹¡£

$ pwd
/u01/app/oracle/product/12.1.0/dbhome_1/nls
$ ls -la lxecal.nlt
-rw-r--r-- 1 oracle oinstall 301 Jan 12 11:50 lxecal.nlt
$ cat lxecal.nlt
DEFINE calendar
    calendar_name         = "Japanese Imperial"
    DEFINE calendar_era
        era_full_name     = "cceeb5e5"
        era_abbr_name     = "59"
        start_date        = "JAN-01-2019 AD"
        end_date          = "DEC-31-2200 AD"
    ENDDEFINE calendar_era
ENDDEFINE calendar

¡Ölxegen¡×¥³¥Þ¥ó¥É¤òµ¯Æ°¤¹¤ë¤È¡¢¡Ölxecal.nlt¡×¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ
¡Ölxecalji.nlb¡×¤È±¾¤¦¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤¬ºîÀ®¤µ¤ì¤Þ¤¹¡£

$ lxegen

NLS Calendar Utility: Version 12.1.0.2.0 - Production

Copyright (c) Oracle 1994, 2014.  All rights reserved.

CORE    12.1.0.2.0      Beta

$ ls -la lxecal*
-rw-r--r-- 1 oracle oinstall 301 Jan 12 11:50 lxecal.nlt
-rw-r--r-- 1 oracle oinstall 144 Jan 12 14:20 lxecalji.nlb ¢«¥³¥¤¥Ä
$

¤¤¤è¤¤¤è¤ä¤Ç¡ÄDB¤ò¥·¥ã¥Ã¥È¥À¥¦¥ó¡¿ºÆµ¯Æ°¤·¤Æ¡¢2019ǯ1·î1Æü¤ò¼èÆÀ¤·¤Æ¤ß¤ë¤È¡Ä¡Ä

SQL> SHUTDOWN IMMEDIATE;
¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¥¯¥í¡¼¥º¤µ¤ì¤Þ¤·¤¿¡£
¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¥Ç¥£¥¹¥Þ¥¦¥ó¥È¤µ¤ì¤Þ¤·¤¿¡£
ORACLE¥¤¥ó¥¹¥¿¥ó¥¹¤¬¥·¥ã¥Ã¥È¥À¥¦¥ó¤µ¤ì¤Þ¤·¤¿¡£
SQL> STARTUP
ORACLE¥¤¥ó¥¹¥¿¥ó¥¹¤¬µ¯Æ°¤·¤Þ¤·¤¿¡£

Total System Global Area 2399141888 bytes
Fixed Size                  2927192 bytes
Variable Size             654312872 bytes
Database Buffers         1728053248 bytes
Redo Buffers               13848576 bytes
¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¥Þ¥¦¥ó¥È¤µ¤ì¤Þ¤·¤¿¡£
¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Þ¤·¤¿¡£
SQL> ALTER SESSION SET NLS_CALENDAR="Japanese Imperial";

¥»¥Ã¥·¥ç¥ó¤¬Êѹ¹¤µ¤ì¤Þ¤·¤¿¡£

SQL> SELECT SYSDATE+719 FROM DUAL;

SYSDATE+719
---------------------------------------------
Ìîµå01ǯ01·î01Æü

SQL>

Ìîµå¸µÇ¯¤ä¡ª×Ä(Žß)(Žß) Qiita ¤Ë¤â½ñ¤¤¤¿¤ä¤Ç×Ä(^)(^)

Oracle Database ¤Ë ¿·¤·¤¤¸µ¹æ(ǯ¹æ)¡ÖÌîµå¡×¤òÄɲ䷤Ƥߤ롣(NLS¥«¥ì¥ó¥À¡¦¥æ¡¼¥Æ¥£¥ê¥Æ¥£lxegen)
http://qiita.com/ora_gonsuke777/items/dc21ee3f2abf718098b9

¥¹¥Ñ¥àÂкö¤Î¤¿¤á¤Î¥À¥ß¡¼¤Ç¤¹¡£¤â¤·¸«¤¨¤Æ¤â²¿¤âÆþÎϤ·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤
¥²¥¹¥È


²èÁüǧ¾Ú

¥È¥é¥Ã¥¯¥Ð¥Ã¥¯ - http://d.hatena.ne.jp/gonsuke777/20170112/1484215308