Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


SQL ステートメントでの文字データの使用

EXEC SQL ステートメントで使用する文字データのホスト変数を記述するのに、以下の USAGE 節のいずれかをコーディングできます。すなわち、1 バイトまたは UTF-8 データの場合は USAGE DISPLAY、DBCS データの場合は USAGE DISPLAY-1、または UTF-16 データの場合は USAGE NATIONAL です。

独立型 DB2 プリコンパイラーを使用する場合、USAGE NATIONAL で宣言されたホスト変数に関して、EXEC SQL DECLARE ステートメントでコード・ページ (CCSID) を指定する必要があります。 USAGE DISPLAY または DISPLAY-1 で宣言されたホスト変数のコード・ページを指定しなければならないのは、COBOL CODEPAGE コンパイラー・オプションで有効な CCSID が、文字および図形データ用に DB2 が使用する CCSID と一致しない場合のみです。

次のコードを見てください。統合 DB2 coprocessor を使用する場合には (下記の関連概念に詳述されているように、SQLCCSID コンパイラー・オプションを使用して)、強調表示された 2 つのステートメントは不要です。コード・ページ情報は暗黙的に処理されるからです。

CBL CODEPAGE(1140) NSYMBOL(NATIONAL)
. . .
WORKING-STORAGE SECTION.
    EXEC SQL INCLUDE SQLCA END-EXEC.
01  INT1 PIC S9(4) USAGE COMP.
01  C1140.
    49 C1140-LEN  PIC S9(4) USAGE COMP.
    49 C1140-TEXT PIC X(50).
    EXEC SQL DECLARE :C1140 VARIABLE CCSID 1140 END-EXEC.
01  G1200.
    49 G1200-LEN  PIC S9(4) USAGE COMP.
    49 G1200-TEXT PIC N(50) USAGE NATIONAL.
    EXEC SQL DECLARE :G1200 VARIABLE CCSID 1200 END-EXEC.
    . . .
    EXEC SQL FETCH C1 INTO :INT1, :C1140, :G1200 END-EXEC.

EXEC SQL DECLARE variable-name VARIABLE CCSID nnnn END-EXEC を 指定した場合は、その指定によって暗黙の CCSID がオーバーライドされます。例えば、次のようなコードを使用 すると、DB2 は、C1208-TEXT を、COBOL の CODEPAGE コンパイラー・ オプションに対して有効な CCSID としてではなく、UTF-8 (CCSID 1208) でエンコードされているものとして扱います。

01 C1208.
    49 C1208-LEN  PIC S9(4) USAGE COMP.
    49 C1208-TEXT PIC X(50).
    EXEC SQL DECLARE :C1208 VARIABLE CCSID 1208 END-EXEC.

NSYMBOL コンパイラー・オプションは、EXEC SQL ステート メントの内部の文字リテラルには影響を及ぼしません。EXEC SQL ステートメントの文字リテラルは、文字定数についての SQL の規則に従います。

関連タスク
DB2 アプリケーション・プログラミングおよび SQL ガイド (COBOL アプリケーションでの SQL ステートメントのコーディング)


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)