Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


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

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

〈この項の構成〉

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

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

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

UAP内の文字データ

文字コード

SQL文

UTF-8

埋込み変数

英数字項目

UTF-8

日本語項目

UTF-16LE又はUTF-16BE

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

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

表8‒34 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 SQLリファレンス」を参照してください。

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

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

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

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

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

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

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

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

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

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