ユニコードは、国際標準の文字セットです。ユニコード文字セットを使用すると、さまざまな文字体系で使用されるすべての文字を一意に表現することができます。一方、ASCII 文字セットは、英語および中央ヨーロッパの文字での使用にのみ適しています。
データベースシステム MaxDB では、ISO 10646 に準拠したユニコードがサポートされています。MaxDB 内部では、ユニコードデータは UTF-16/UCS-2 形式で格納されています。ユニコードでは 1 文字が 8 ビットではなく 16 ビットであるため、ASCII 形式でデータを保存する場合に比べて 2 倍の記憶域が必要です。
MaxDB データベースインスタンスでは、データベースカタログおよびアプリケーションデータにユニコードを使用することができます。
● データベースカタログ:
テーブル名や列名などのデータベースオブジェクトの名称をユニコードで格納するには、データベースインスタンスを登録するときに特殊データベースパラメータ _UNICODE を YES に設定します。
後でこのデータベースパラメータを変更することはできません。
● アプリケーションデータ:
CHAR、VARCHAR、または LONG 型の列のアプリケーションデータをユニコードで格納するには、列のコード属性として UNICODE 値を選択します。
CHAR、VARCHAR、および LONG データ型の列のデフォルトのコード属性を UNICODE に設定するには、DEFAULT_CODE 特殊データベースパラメータとして UNICODE 値を選択します。
すでにデータを含む列のコード属性を変更するためには、以下の要件を満たすことが必要です。
○ ASCII からユニコードに変更する場合: 変換後も、列のすべての値が列に収まる必要があります (ユニコードデータは、ASCII データの 2 倍の領域を必要とします)。
○ ユニコードから ASCII に変更する場合: 値には、ASCII 文字セットの一部である文字のみが含まれていることが必要です。
ユニコードをサポートするデータベースツール
データベースツール |
ユニコードがサポートされているか* |
データベースマネージャ |
○ |
ローダ |
○ |
SQL Studio |
制限あり (SQL Studio、ユニコードサポートを参照) |
SQLCLI |
× |
同期マネージャ |
○ |
Web SQL |
○ |
XUSER |
制限あり (オプション -b を使用した場合にのみ、ユーザ名とパスワードをファイルから XUSER にユニコードでインポートすることができますが、ユニコードのユーザ名とパスワードをコマンド行に直接入力することはできません) |
* コマンド行プログラムを使用する場合は、コマンド行環境でもユニコードがサポートされている必要があります。
ユニコードをサポートするインタフェース
Interface |
ユニコードがサポートされているか |
JDBC |
○ |
ODBC |
○ |
Perl |
○ |
PHP |
× |
Python |
制限あり (現在、sdb.dbm モジュールおよび sdb.loader モジュールでは、ユニコードはサポートされていません。) |
SQLDBC |
○ |
WebDAV |
○ |
参照:
データベースシステムのコンセプト
参照マニュアル、コード属性