文字セット問題の初歩的な検討(二)


文字セット問題の初歩的な検討(二)
--データベースの文字セット
Saturday, 2004-09-11 11:38 Eygle

原文はitpub技術叢書『OracleデータベースDBA特別テーマ技術エッセンス』に発表され、許可を得ずに、本文の転載を厳禁する.
原文リンク:http://www.eygle.com/special/NLS_CHARACTER_SET_02.htm
2.データベースの文字セット
文字セットは、データベースの作成時に指定され、作成後は通常変更できないため、データベースの作成時に正しい文字セットを選択できるかどうかが重要です.データベースの作成時に、文字セット(CHARACTER SET)と国家文字セット(NATIONAL CHARACTER SET)を指定できます.文字セット記憶用:CHAR、VARCHR 2、CLOB、LONGなどのタイプのデータは、表名、列名、PL/SQL変数などのSQLとPL/SQLプログラムユニットなどの国の文字セットを表示するために使用されます:NCHR、NVARCHR 2、NCLLOBなどのタイプのデータこれらの設定は、データベース作成時に指定されます.


connect SYS/change_on_install as SYSDBAset echo onspool E:\oracle\ora92\assistants\dbca\logs\CreateDB.logstartup nomount pfile="E:\oracle\admin\eygle\scripts\init.ora";CREATE DATABASE eygleMAXINSTANCES 1MAXLOGHISTORY 1MAXLOGFILES 5MAXLOGMEMBERS 3MAXDATAFILES 100DATAFILE 'E:\oracle\oradata\eygle\system01.dbf' SIZE 250M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITEDEXTENT MANAGEMENT LOCALDEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'E:\oracle\oradata\eygle\temp01.dbf' SIZE 40M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITEDUNDO TABLESPACE "UNDOTBS1"DATAFILE 'E:\oracle\oradata\eygle\undotbs01.dbf' SIZE 50M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITEDCHARACTER SET ZHS16GBKNATIONAL CHARACTER SET AL16UTF16LOGFILE GROUP 1 ('E:\oracle\oradata\eygle\redo01.log') SIZE 10M,GROUP 2 ('E:\oracle\oradata\eygle\redo02.log') SIZE 10M,GROUP 3 ('E:\oracle\oradata\eygle\redo03.log') SIZE 10M;spool offexit;


以上、太字で表示したのは、私たちにとって重要な文字セットの設定です.データベースを作成する過程で、以下のインタフェースであなたの文字セットを選択します.簡体字中国語プラットフォームでは、デフォルトの文字セットはZHS 16 GBK 字符集问题的初步探讨(二)_第1张图片です.文字セットが選択されると、データベースに格納できる文字が制限されます.そのため、選択した文字セットには、使用する文字がすべて含まれるはずです.一般的な中国語文字セットは次のとおりです.
ZHS16CGB231280 	CGB2312-80 	16-bit Simplified Chinese MB, ASCII
ZHS16GBK GBK 16-bit Simplified Chinese MB, ASCII, UDC

このうちGB 2312コードは中華人民共和国国家漢字情報交換用コードであり、「情報交換用漢字符号化文字セット--基本セット」と呼ばれ、国家標準総局が発表し、1981年5月1日に実施され、大陸で通行した.シンガポールなどでもこのコードが使われています.GBKコードは1995年12月に公布された指導的規範である.GBKは国家標準GB 2312-80情報処理交換コードに対応する、事実上のイントラコード標準と互換性がある.また、ISO/IEC 10646-1とGB 13000-1のすべての中日韓(CJK)漢字(20902字)を語彙一級でサポートしています.より多くのコードが含まれています.しかし、ZHS 16 GBKはZHS 16 CGB 231280の厳密なスーパーセットではない(後者の漢字は前者に存在するが、同じ符号化は異なる2文字セットで異なる漢字を表す可能性がある)ため、データベース文字変換を行う際には特に注意が必要である.Oracleの文字セット名は、次の命名規則に従います.
     <Language><bit size><encoding>
: < > < >< >
: ZHS · 16 ·GBK


なお、一部の文字セットネーミングはこの仕様に違反しており、Oracle 8/oralce 8 iのUTF-8はこのネーミング仕様を破った最初の文字セットである.AL 16 UTF 16のように、ALがALLを表し、すべての言語(All Languages)に適用される文字セットがALで始まるのを見ることができます.この基準に従って、当時UTF-8はAL 24 UTF 8と命名されていました.