インストール中の文字セット選択について
データベースを作成する前に、使用する文字セットを決定します。
データベースを作成した後で文字セットを変更すると、一般的に、時間およびリソースの面で大きなコストがかかります。このような処理を行うには、データベース全体をエクスポートした後で再びインポートすることにより、すべての文字データの変換が必要な場合もあります。そのため、データベース文字セットは、インストールの時点で慎重に選択することが重要です。
Oracle Databaseでは、文字セットを次のものに使用します。
-
SQL文字データ型(
CHAR
、VARCHAR2
、CLOB
、およびLONG
)で格納されているデータ。 -
表名、列名、PL/SQL変数などの識別子。
-
ストアドSQLおよびPL/SQLソース・コード(このコードに埋め込まれたテキスト・リテラルも含む)。
Oracle Database 12cリリース2 (12.2)以降、汎用/トランザクション処理またはデータ・ウェアハウスのテンプレートから作成されたデータベースのデフォルトのデータベース文字セットは、Unicode AL32UTF8
です。
Unicodeは、現在世界で使用されている言語のほとんどをサポートしている汎用文字セットです。また、現在では使用されていない歴史的な文字(アルファベット)も多数サポートしています。Unicodeは、Java、XML、XHTML、ECMAScript、LDAPなど、多くのテクノロジのネイティブ文字コードです。Unicodeは、インターネットや世界経済をサポートしているデータベースに非常に適しています。
AL32UTF8
はマルチバイト文字セットであるため、文字データに対するデータベース操作の速度は、WE8ISO8859P1
やWE8MSWIN1252
などのシングルバイト・データベース文字セットと比較すると若干遅い可能性があります。AL32UTF8
では、ASCIIレパートリー以外の文字を使用するほとんどの言語のテキストに対する記憶域要件が、その言語をサポートするレガシー文字セットよりも高くなります。CLOB
(キャラクタ・ラージ・オブジェクト)列に保存される場合のみ、英語データにはより多くの領域が必要になります。NUMBER
またはDATE
などの文字以外のデータ型の記憶域は、文字セットに依存しません。Unicodeでは、汎用性や柔軟性があるために、通常はこうした過剰な負担が生じます。
データベースで単一グループの言語を必ずサポートする必要があり、互換性、記憶域またはパフォーマンス要件を満たすためにレガシー文字セットが重要である場合にのみ、レガシー文字セットを検討します。この場合、対象のデータベースに接続しているクライアントに最も多く使用されている文字セットを、データベース文字セットとして選択します。
マルチテナント・コンテナ・データベース(CDB)のデータベース文字セットにより、後でプラグインできるデータベースが決まります。CDBに選択した文字セットが、このCDBにプラグインするデータベースのデータベース文字セットと互換性があることを確認します。CDB文字セットとしてUnicode AL32UTF8
を使用する場合、Oracle Databaseでサポートされている任意のデータベース文字セット(EBCDICベースの文字セットを除く)でプラガブル・データベース(PDB)にプラグインできます。
関連項目:
マルチテナント・コンテナ・データベース(CDB)のデータベース文字セットの選択の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください