スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド

[目次][索引][前へ][次へ]

8.4.3 COBOL2002のUnicode機能を使用したUAPの実行

COBOL2002のUnicode機能を使用するUAPでは,UTF-16の文字データを格納する日本語項目を,埋込み変数として使用できます。

<この項の構成>
(1) SQLに関係する文字データの文字コード
(2) HiRDBサーバが行う文字コード変換
(3) SQLを実行できる条件

(1) SQLに関係する文字データの文字コード

COBOL2002のUnicode機能を使用するUAPでの,UAP内の文字データと文字コードを次の表に示します。

表8-27 COBOL2002のUnicode機能を使用するUAPでの,UAP内の文字データと文字コード

UAP内の文字データ 文字コード
SQL文 UTF-8
埋込み変数 英数字項目 UTF-8
日本語項目 UTF-16LE又はUTF-16BE

(2) HiRDBサーバが行う文字コード変換

COBOL2002のUnicode機能を使用するUAPでSQLを実行する場合に,HiRDBサーバが行う文字コード変換を次の表に示します。

表8-28 COBOL2002のUnicode機能を使用するUAPでSQLを実行する場合に,HiRDBサーバが行う文字コード変換

UAP内の文字データ SQL実行時にHiRDBサーバが行う文字コード変換
SQL文 クライアント側とサーバ側の文字コードは両方ともUTF-8のため,変換しません。
埋込み変数 英数字項目 代入,比較処理の対象となるサーバ側の文字データの文字集合がUTF-16の場合,文字コードを変換します。
日本語項目 代入,比較処理の対象となるサーバ側の文字データの文字集合が既定文字集合(UTF-8)の場合,文字コードを変換します。
なお,変換前のデータに半角文字がある場合は,半角文字(UTF-16では2バイト)を格納します。
また,埋込み変数内のデータは-XU16オプションの指定に従って,文字集合名UTF-16LE,又はUTF-16BEを指定した文字データ型(CHAR又はVARCHAR)のデータとして扱います。

注※
変換(代入,比較)できるデータ型については,マニュアル「HiRDB Version 8 SQLリファレンス」を参照してください。

(3) SQLを実行できる条件

COBOL2002のUnicode機能を使用するUAPでSQLを実行するには,次に示す条件をすべて満たす必要があります。

(a) HiRDBサーバの既定文字集合

pdntenvコマンド(UNIX版の場合はpdsetupコマンド)で,文字コード種別にutf-8を指定した場合に,HiRDBサーバの既定文字集合がUTF-8になります。

(b) プリプロセスオプション

-XU16オプションについては,「表8-5 プリプロセスオプション(UNIX環境のCOBOL言語の場合)」,又は「表8-11 プリプロセスオプション(Windows環境のCOBOL言語の場合)」を参照してください。

(c) 埋込みSQL文中の文字の制限

UAPのソース中に埋め込んだSQL文にJIS X0213の第3・4水準漢字コードの文字が含まれていると,プリプロセス時にエラーになります。なお,埋込み変数に格納する文字データは,COBOL2002のUnicode機能がサポートする範囲の文字をすべて使用できます。

(d) クライアント環境定義

HiRDBクライアントが文字コード変換を行わないように,クライアント環境定義PDCLTCNVMODEにNOUSEを指定します。