Oracle ¤ÇÆüËܸì¤ò¼è¤ê°·¤¦¤È¤¤Îʸ»ú¥³¡¼¥É
¥ª¥é¥¯¥ë¤Î CHAR ¤ª¤è¤Ó VARCHAR2 ¤Ê¤É¤ËʬÎव¤ì¤ëɸ½àʸ»úÎ󷿤ǻÈÍѤµ¤ì¤ëʸ»ú¥³¡¼¥É¤ò Database Characterset ¤È¸Æ¤Ó¡¢
NCHAR ¤ª¤è¤Ó NVARCHAR2 ¤Ê¤É¤Î³Æ¹ñ¸ìʸ»úÎ󷿤ǻÈÍѤµ¤ì¤ëʸ»ú¥³¡¼¥É¤ò National Characterset ¤È¸Æ¤Ö¡£
¥Þ¥ë¥Á¥Ð¥¤¥È¡¦¥¥ã¥é¥¯¥¿¥»¥Ã¥È¡Ê¥À¥Ö¥ë¥Ð¥¤¥È¡¦¥¥ã¥é¥¯¥¿¥»¥Ã¥È¡Ë
ÆüËܤò´Þ¤à¥¢¥¸¥¢·÷¤Ê¤É¤Ë¤ª¤¤¤Æ»ÈÍѤµ¤ì¤ë¥¥ã¥é¥¯¥¿¥»¥Ã¥È¤Ï¡¢Ê¸»ú¼ï¤¬Â¿¤¯ 1 ¥Ð¥¤¥È¤Ç¤Ïɽ¸½ÉÔ²Äǽ¤Ê¤¿¤á 2¥Ð¥¤¥È°Ê¾å¤Çɽ¸½¤µ¤ì¤Æ¤¤¤ë¡£
°ìÈÌŪ¤ËÁ´³Ñʸ»ú¡á¥Þ¥ë¥Á¥Ð¥¤¥È¡¦¥¥ã¥é¥¯¥¿¤ÈÏ䷤Ƥ¤¤ë¤³¤È¤â¿¤¤¤¬¸·Ì©¤Ë¤Ï´Ö°ã¤¤¤È¤Ê¤ë¡£
(¤½¤ì¤Ç¸í²ò¤·¤¿(¤µ¤ì¤¿)¤³¤È¤Ï̵¤¯¡¢ÌäÂê¤Ë¤Ê¤Ã¤¿¤³¤È¤â¤Ê¤¤¤Î¤ÇÂç¾æÉפ«¤È»×¤¦)
°Ê²¼¤ÏÆüËܸì¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥¥ã¥é¥¯¥¿¥»¥Ã¥È¤ÎÂåɽŪ¤Ê¤â¤Î
±Ñ¿ô»ú¡¢¥¹¥Ú¡¼¥¹,µ¹æ(_,$,#,¤Ê¤É)¤Ï 1 ¥Ð¥¤¥È(UTF-16 ¤ÏÎã³°)
Ⱦ³Ñ¥«¥¿¥«¥Ê¡¢¤Ò¤é¤¬¤Ê¡¢´Á»ú¤Ê¤É¤ÎÁ´³Ñʸ»ú¤Ï 2 ¥Ð¥¤¥È°Ê¾å¤Ç¹½À®¤µ¤ì¤ë¡£
Shift_JIS ¤Î¾ì¹ç¡¢È¾³Ñ¥«¥¿¥«¥Ê¤Ï 1 ¥Ð¥¤¥È¤Î¤¿¤á¡¢Â¾¤Î¥×¥é¥Ã¥È¥Õ¥©¡¼¥à¤Î EUC ´Ä¶¤Ë¥Ç¡¼¥¿¤ò°Ü¿¢¤¹¤ë¾ì¹ç¤Ë¤è¤¯ÌäÂê¤Ë¤Ê¤ë¡£
| Database Characterset ¡Êʸ»ú¥³¡¼¥É¡Ë | NLS ɽµ |
| Shift_JIS | 1¡Á2¥Ð¥¤¥È | JA16SJISTILDE (9iR2°Ê¹ß) |
| JA16SJIS |
| EUC-JP | 1¡Á2(3) ¥Ð¥¤¥È*1 | JA16EUCTILDE (9iR2°Ê¹ß) |
| JA16EUC |
| UTF-8 | 1¡Á3 ¥Ð¥¤¥È*2(or 6 ¥Ð¥¤¥È=3¡ß2¢¨) ¢¨ AL32UTF8 ¤ÇÊä½õʸ»ú »²¾È 1 ¥Ð¥¤¥È:ASCII 2 ¥Ð¥¤¥È:Èó´Á»ú¡¢µ¹æ¡¢¥®¥ê¥·¥ãʸ»ú¡Ê¦¸¦Á¦Â¡Ä¡Ë¡¢¥í¥·¥¢Ê¸»ú¡Ê§¡§¢¡Ä¡Ë 3 ¥Ð¥¤¥È:Ⱦ³Ñ¥«¥Ê¡¢¤Ò¤é¤¬¤Ê¡¢´Á»ú | AL32UTF8 (UTF8¤Ïµì·Á¼° AL32UTF8¤ò»È¤¦) Unicode 3.2 Unicode 4.0 ¥µ¥Ý¡¼¥È Unicode 5.0 ¥µ¥Ý¡¼¥È  |
| UTF-EBCDIC | 1¡Á4 ¥Ð¥¤¥È | UTFE |
| National Characterset*3 | NLS ɽµ |
| UTF-8 | 1¡Á3 ¥Ð¥¤¥È(UTF8 ¤ÏUnicode 3.0¤Þ¤Ç) ÆüËܸìʸ»ú¤Ï 3 ¥Ð¥¤¥È ÆÃ¼ìʸ»ú 4 ¥Ð¥¤¥È(Oracle 10g ̤¥µ¥Ý¡¼¥È) 5 ¥Ð¥¤¥È°Ê¾å¤Ï¤ï¤«¤ê¤Þ¤»¤ó¡£µ¬³Ê¾å¤À¤±? | UTF8 |
| UTF-16 | 2 ¥Ð¥¤¥È(¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¡¢ÆüËܸì) 4 ¥Ð¥¤¥È(ÆÃ¼ìʸ»ú) | AL16UTF16 Unicode 5.0 ¥µ¥Ý¡¼¥È  |
| ¤½¤ì°Ê³°¤Îʸ»ú¥³¡¼¥É | È÷¹Í |
| UCS-2 | 2 ¥Ð¥¤¥È | ¥Þ¥ë¥Á¥Ð¥¤¥È¡¦¥¥ã¥é¥¯¥¿¥»¥Ã¥È¤Î¾ì¹ç¤Ë CLOB ¤¬¥Ç¡¼¥¿³ÊǼ¤Ë»ÈÍѤ¹¤ë¥¥ã¥é¥¯¥¿¥»¥Ã¥È ¢Í ¥Ç¡¼¥¿·¿¤ÎÆâÉô·Á¼° Java ¤ä Win NT·Ï¤Î UNICODE |
| UCS-4 | 4 ¥Ð¥¤¥È | |
AL32UTF8 ¤ÇÊä½õʸ»ú¡Ê4¥Ð¥¤¥È¤Îʸ»ú¡Ë¤Î°·¤¤ (JIS X 0213:2004 / Âè3¡¦4¿å½à´Á»ú)
Windows Vista ¤Ë¤è¤ë JIS X 0213:2004 ¥µ¥Ý¡¼¥È¤Ë¤è¤Ã¤Æ 4 ¥Ð¥¤¥Èʸ»ú¤ÎÌäÂ꤬¸²ºß²½¤¹¤ë²ÄǽÀ¤â¡Ä
Oracle 10g R1 ¤Ï 3 ¥Ð¥¤¥È¤Þ¤Ç¤Î Unicode 3.2
Oracle 10g R2 ¤«¤é AL32UTF32 ¤È AL16UTF16 ¤Ç Unicode 4.0 ¥µ¥Ý¡¼¥È
Oracle 11g ¤«¤é AL32UTF32 ¤È AL16UTF16 ¤Ç Unicode 5.0 ¥µ¥Ý¡¼¥È
¥Þ¥Ë¥å¥¢¥ë¾å¤Îɽµ¤Ç¤Ï(Oracle 10g R1 °ÊÁ°¤Þ¤Ç¡©¡Ë
UTF8 ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ËÊä½õʸ»ú¤¬ÁÞÆþ¤µ¤ì¤Æ¤â¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Î¥Ç¡¼¥¿¤Ï
ÇË»¤·¤Þ¤»¤ó¡£ Êä½õʸ»ú¤Ï 6¥Ð¥¤¥È¤òÀê¤á¤ë 2¤Ä¤ÎÊ̸ĤΥ桼¥¶¡¼ÄêµÁʸ»ú
¤È¤·¤Æ½èÍý¤µ¤ì¤Þ¤¹¡£
¤È½ñ¤«¤ì¤Æ¤¤¤ë¡£¤Ä¤Þ¤ê 4¥Ð¥¤¥Èʸ»ú¤Ï 6¥Ð¥¤¥È¾ÃÈñ¤¹¤ë¤È¤¤¤¦¤³¤È¤Î¤è¤¦¤Ç¤¢¤ë¡£¡Ê¤Ä¤Þ¤ê AL32UTF8 ¤Ë¤Ï Oracle ¤Ë¤è¤ë³ÈÄ¥¤¬»Ü¤µ¤ì¤Æ¤¤¤ë¡£NCHAR ¤Î UTF8 ¤Ï¡©¡©¡©¡Ë
⤷¡¢Ì¤³Îǧ & TTC ¥ì¥¤¥ä¡¢¥ß¥É¥ë¥¦¥§¥¢¤Î¥Ð¡¼¥¸¥ç¥ó¤Ë¤è¤Ã¤Æ¤ÏͽÁÛ³°¤Îưºî¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
¥¯¥é¥¤¥¢¥ó¥È¡Ê¸ÜµÒ¡Ë¤¬ Windows Vista »ÈÍѤò²ò¶Ø¤·¤¿¸å¤ËȯÀ¸¤¬Í½ÁÛ¤µ¤ì¤ë¥¨¥é¡¼
Unicode UTF-16
Oracle ¤Ï UTF-16 ¤Î¤¦¤Á¤Ç UTF-16BE ¤Î¤ß¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£
| Oracle Characterset | Structure | Word (byte) |
| US7ASCII | ASCII | A | ¦¸ | ¸ì | ¥¢¡ÊȾ³Ñ¡Ë |
| 41 | - | - | - |
| UTF8 , AL32UTF8 | UTF-8 | A | ¦¸ | ¸ì | ¥¢ |
| 41 | CE.A9 | E8.AA.9E | EF.BD.B1 |
| AL16UTF16 | UTF-16BE | A | ¦¸ | ¸ì | ¥¢ |
| 00.41 | 03.A9 | 8A.9E | FF.71 |
| (UTF16)*4 | UTF-16LE | A | ¦¸ | ¸ì | ¥¢ |
| 41.00 | A9.03 | 9E.8A | 71.FF |
| - | UTF-32BE | A | ¦¸ | ¸ì | ¥¢ |
| 00.00.00.41 | 00.00.03.A9 | 00.00.8A.9E | 00.00.FF.71 |
| UTF-32LE | A | ¦¸ | ¸ì | ¥¢ |
| 41.00.00.00 | A9.03.00.00 | 9E.8A.00.00 | 71.FF.00.00 |
BE(Big Endian):¥Ó¥Ã¥°¥¨¥ó¥Ç¥£¥¢¥ó(¥Ó¥Ã¥¯¥¤¥ó¥Ç¥£¥¢¥ó) ¥Ð¥¤¥È¥ª¡¼¥À
LE(Big Endian):¥ê¥È¥ë¥¨¥ó¥Ç¥£¥¢¥ó(¥ê¥È¥ë¥¤¥ó¥Ç¥£¥¢¥ó) ¥Ð¥¤¥È¥ª¡¼¥À
¤³¤ÎÍѸì¤ÎÀâÌÀ¤Ë¡¢¤¿¤Þ¡Á¤ËÂç¾®¤Î¥¤¥ó¥Ç¥£¥¢¥ó¤Î̱²°áÁõ¤ò¤Ä¤±¤¿ÁÞ³¨¤¬¤¢¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¤¬
¤¢¤ì¤Ï°ú¤Ã³Ý¤±¤Ç¤¹¡£Endian(¥Õ¥£¥¯¥·¥ç¥ó) ¡â Indian(¥Î¥ó¥Õ¥£¥¯¥·¥ç¥ó) ¤Ç¤¹¡£
Indian ¤Ï ¥¤¥ó¥É¿Í¤È´ª°ã¤¤¤·¤¿¤³¤È¤«¤éÀ¸¤Þ¤ì¤¿¤â¤Î¤Ç¡¢Endian ¤ÏÍñ¤ò¤¢¤¿¤Þ (little) ¤È¤ª¤·¤ê (big) ¤Î¤É¤Á¤é¤«¤é³ä¤ë¤«
¤ÇÁ褤¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿ Big End + ian(¿Í) ¤È Litte End + ian(¿Í) ¤È¤¤¤¦Êª¸ì¤Ë¤Ç¤Æ¤¯¤ë¤Î¿Í¼ï¤Î̾Á°¤Ç CPU ¤Î¼çƳ¸¢Á褤¤Î¤È¤¤ÎÍͻҤò³ê·Î¤Ë¤¢¤é¤ï¤·¤Æ¤¤¤ë¤â¤Î¤À¤È»×¤¤¤Þ¤¹¡£
Big Endian ¤Ï Motorola ¤ä Sun ÀªÎÏ¤Ç Litte Endian ¤Ï Intel ¤ä Zilog ÀªÎϤǤ¹¡£¤Þ¤ë¤Çº£¤Î¼¡À¤Âå DVD µ¬³Ê¤Î¤è¤¦¤Ê¾õÂÖ¤À¤Ã¤¿¤è¤¦¤Ê¡Ä Z80 ¤Ã¤ÆÃΤäƤ¤¤Þ¤¹¤«?
¥¥ã¥é¥¯¥¿¥»¥Ã¥È̾¤Î³ÎǧÊýË¡
¸½ºß¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥¥ã¥é¥¯¥¿¥»¥Ã¥È¡¢³Æ¹ñ¸ì¥¥ã¥é¥¯¥¿¥»¥Ã¥È¤ò³Îǧ¤¹¤ë¤Ë¤Ï ¡Ê¢Í NLS_CHARSET_ID¡¢NLS_CHARSET_NAME ´Ø¿ô¡Ë
SELECT NLS_CHARSET_NAME(NLS_CHARSET_ID('CHAR_CS')),
NLS_CHARSET_NAME(NLS_CHARSET_ID('NCHAR_CS')) FROM DUAL;
¤Þ¤¿¤Ï
SELECT PARAMETER, VALUE
FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
¤ò»ÈÍѤ¹¤ë¡£
NLS_CHARACTERSET: ¥Ç¡¼¥¿¥Ù¡¼¥¹¡¦¥¥ã¥é¥¯¥¿¥»¥Ã¥È
NLS_NCHAR_CHARACTERSET: ³Æ¹ñ¸ì¥¥ã¥é¥¯¥¿¥»¥Ã¥È
SQL*Plus ¥³¥Þ¥ó¥É ¤Î SHOW ¥³¥Þ¥ó¥É
SQL> SHOW PARAMETER NLS_
¤Ç¤Ï»ÈÍѤ·¤Æ¤¤¤ëʸ»ú¥³¡¼¥É¤Î³Îǧ¤Ï¤Ç¤¤Ê¤¤¡£
»²¹Í¡§ ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Îʸ»ú¥³¡¼¥É¤òÊѹ¹¤¹¤ë
´ØÏ¢»ö¹à
(;ÃÌ) VARCHAR ¤Ï¡¢¤Ê¤ó¤È¸Æ¤Ó¤Þ¤¹¤«?
»ä¤Ï¡¢È¯²»¤Î¤·¤ä¤¹¤µ¤«¤é¡¢¤Ä¤¤¡Ö¥Ð¡¼¥Á¥ã¡¼¡×¤È¸Æ¤ó¤Ç¤¤¤Þ¤¹¡¢Ã¢¤· CHAR ¤Ï¥¥ã¥é¤È¸Æ¤Ö¡¢Í¥½ÀÉÔÃǤµ¡£
¤½¤·¤Æ¡¢¸Æ¤ÓÊý¤Ë¤¦¤ë¤µ¤¤¿Í¤È»Å»ö¤ò¤¹¤ë¤È¤¤Ë¤Ï¡¢¡Ö¥Ð¡¼¥¥ã¥é¡×¤È¸Æ¤Ö¤¯¤é¤¤Å°Ä줷¤ÆÍ¥½ÀÉÔÃǤǤ¹¡£ 
¤³¤Î¡Ö¥Ð¡¼¥Á¥ã¡¼¡×¡¢ÈÆÍѵ¡·Ð¸³¼Ô(COBOL ¤Î¤ß?)¤Ï¡¢¤³¤ì¤òÆÃ¤Ë·ù¤Ã¤Æ¤¤¤ë¤è¤¦¤Ë»×¤¨¤Þ¤¹¡£
Oracle ¤Ë¤Ï VIRTUAL ·¿¤Ï¤Ê¤¤¤Ï¤º*5¤Ç¤¹¤¬
¡Ö¥Ð¡¼¥Á¥ã¡¼¡×¤Ï VIRTUAL ¤ò¥¤¥á¡¼¥¸¤¹¤ë¤Î¤Ç¡Ö¥Ð¡¼¥¥ã¥é¡×¤¬Àµ¤·¤¤¤È¤¤¤¦²¦Æ»¤ÇÎÏÀ⤷¤Æ¤¤¤ë¤«¤È»×¤¤¤Þ¤¹¡£
¡Ö¥Ð¡¼¥Á¥ã¡¼¡×¤òÈÝÄꤹ¤ë»ñÎÁ¤Ï¤¢¤Ã¤Æ¤â¡¢ÀµÅö²½¤¹¤ë»ñÎÁ¤¬Â¸ºß¤¹¤ë¤È¤Ï»×¤¨¤Þ¤»¤ó¤¬¡¢
¤È¤ê¤¢¤¨¤º Oracle ´ØÏ¢¤Î·Ç¼¨ÈĤȥª¥Õ¥£¥·¥ã¥ë¥µ¥¤¥È¤Ç¤Ï¡¢´ØÏ¢¤¹¤ë¸ø¼°¤Ê»ñÎÁ¤Ï¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡Ä¤ª¤·¤Þ¤¤¡£