Unicode 表へのデータの挿入

Unicode 表には、任意の文字を保管できます。 キーボードで入力できる文字の場合、INSERT ステートメントで簡単に保管できます。 しかし、 U.S のキーボードにない記号、例えば円記号 (¥) を挿入したいとします。 このプロセスには、追加の手順が必要になります。

プロシージャー

Unicode 表にデータを挿入するには、以下のいずれかの方法を使用します。

  • LOAD ユーティリティーを使用して、データ・セットからデータをロードする。 入力データ・セットが既に Unicode の場合、UNICODE オプションを指定します。 データが Unicode ではない場合、LOAD ユーティリティー・ステートメントに、正しいコード化スキーム・キーワード (ASCII、EBCDIC、または CCSID) を指定する必要があります。 デフォルトは EBCDIC です。 Db2 Unicodeテーブルに読み込まれる際に、ASCIIとEBCDICのデータをUnicodeに変換します。 この変換によりデータが拡張される場合があるので注意してください。
  • クロスローダー関数を使用して、別の表からデータをロードする。 データがEBCDICテーブルまたはASCIIテーブルからのものである場合、 Db2 は、ターゲットのユニコードテーブルに読み込まれる際に、それをユニコードに変換します。 この変換によりデータが拡張される場合があるので注意してください。
  • INSERT ステートメントを使用して、個々の行を挿入する。 キーボードで入力できない文字の場合、Unicode 定数 UX'xxxx' を使用します。
    この定数は常に UTF-16 です。したがって、UTF-16 フォーマットで値を指定する必要があります。 特定の文字の Unicode 定数を確認するには、以下の手順を実行します。
    1. Unicode コード・ポイントを調べます。 Unicode ConsortiumのウェブサイトにあるUnicode文字コード表をご利用ください。 例えば、円記号 (¥) は U+00A5 です。
    2. 以下のいずれかの操作を実行して、Unicode コード・ポイントを UTF-16 フォーマットに変換します。
      • Unicode コード・ポイント U+yyyy が U+FFFF より小さい場合、UTF-16 でエンコードするのは簡単です。 単に値をコピーするだけです。 例えば、以下の Unicode コード・ポイントは、以下の Unicode 定数として指定できます。
        表 1. Unicode コード・ポイントと対応する Unicode 定数 (Unicode コード・ポイントが U+FFFF より小さい場合)
        文字 Unicode コード・ポイント UTF-16 フォーマット Unicode 定数
        ¥ U+00A5 X'00A5' UX'00A5'
        ĸ U+0138 X'0138' UX'0138'
        図の説明の開始 Unicode文字 U+270E 図の説明の終わり。 U+270E X'270E' UX'270E'
      • Unicode コード・ポイント U+yyyy が U+FFFF 以上の場合、UTF-16 フォーマットでその文字をエンコードし、そのエンコードした値を使用します。 例えば、Unicode コード・ポイント U+200D0 は、UTF-16 では X'D840DCD0' にエンコードできます。 したがって、Unicode 定数は UX'D840DCD0' です。

        Unicode コンソーシアム Web サイトには、Unicode データを手動でエンコードおよびデコードする手順が掲載されています。 また、コンバーター・ツールを使用して変換を実行することもできます。

以下のINSERT文は、Unicode文字 U+200D0 を含む行を挿入します。これは、 図の説明の開始 Unicode 文字 200D0。 図の説明の終わり。2番目の列に挿入します。
INSERT INTO UNITAB VALUES ('7A907',UX'D840DCD0','A');