ページの先頭行へ戻る
Enterprise Postgres 12 アプリケーション開発ガイド
FUJITSU Software

7.4.1 各国語データ型のサポート

ここでは、SQL埋め込みCOBOLプリプロセッサを用いて、各国語データ型を使用する方法を説明します。

各国語データ型に対応するCOBOL言語変数型は、下表のとおりです。また、ホスト変数の長さには、各国語データ型に指定する文字数を指定します。

各国語データ型

COBOL言語変数型

CHARACTER(n)

NATIONAL CHARACTER(n)

変数名 PIC N(n)

CHARACTER VARYING(n)

NATIONAL CHARACTER VARYING(n)

変数名 PIC N(n) VARYING

各国語データ型に対応するCOBOL言語変数型を使用する場合は、環境変数ECOBPG_NCHARを指定する必要があります。

ECOBPG_NCHAR={ UTF16LE | UTF16BE | UTF32LE | UTF32BE | SJIS }

COBOL言語による埋込みSQLを使用したアプリケーションの各国語データ型に対応するCOBOL言語変数型のエンコードを指定します。

本環境変数を省略した場合はクライアントの符号化方式によって決定されます。


NetCOBOLによるコンパイル時に翻訳オプションでエンコードを指定した場合は、各国語データ型に指定したエンコードを環境変数ECOBPG_NCHARに指定する必要があります。

NetCOBOLの翻訳オプションと、指定する環境変数ECOBPG_NCHARの値の対応は、以下となります。

NetCOBOLの翻訳オプション

環境変数ECOBPG_NCHAR

ENCODE(UTF8,UTF16,LE)

RCS(UTF16,LE)

UTF16LE

ENCODE(UTF8,UTF16,BE)

RCS(UTF16,BE)

UTF16BE

ENCODE(UTF8,UTF32,LE)

UTF32LE

ENCODE(UTF8,UTF32,BE)

UTF32BE

ENCODE(SJIS,SJIS)

SJIS

指定なし

指定不要


また、コンパイル後のアプリケーションのエンコードとアプリケーション実行時のロケールが異なる場合は、クライアントの符号化方式をアプリケーションのエンコードに指定する必要があります。

アプリケーションのエンコードと、アプリケーション実行時のロケールと、設定するクライアントの符号化方式の値の対応は、以下となります。

アプリケーションのエンコード

アプリケーション実行時のロケール

クライアントの符号化方式

UTF8

UTF8

UTF8

SJIS

UTF8

SJIS

UTF8

SJIS

SJIS

SJIS

クライアントの符号化方式の設定方法については、“7.2.2 メッセージの言語およびアプリケーションが使用する符号化方式の設定”を参照してください。


以下に、各国語データ型のホスト変数の宣言例を示します。

01 DATA1 PIC N(10).
01 DATA2 PIC N(10) VARYING.

注意

  • 各国語データ型のCOBOL言語変数には半角文字を格納しないでください。

  • アプリケーションで取得する各国語データ型の列属性もCHAR型となります。

  • NetCOBOLの機能である、ENCODING句によるエンコードの指定は使用できません。