DBCS コンパイラー・オプションが有効な場合、英数字リテラルに含まれている文字 X'0E' および X'0F' は、DBCS 文字用のシフト・コードとして認識されます。つまり、 対になったシフト・コードではさまれた文字は DBCS 文字として認識されます。 NODBCS オプションを付けてコンパイルした英数字リテラルとは異なり、 英数字リテラルの中の DBCS 文字には追加の構文規則が適用されます。
DBCS 文字が含まれている英数字リテラルは、以下のフォーマットになります。
| フォーマット 2: DBCS 文字を含む英数字リテラル |
|---|
"mixed-SBCS-and-DBCS-characters" 'mixed-SBCS-and-DBCS-characters' |
シフトアウト制御文字とシフトイン制御文字はリテラルの一部であり、対になっている必要があります。 シフトアウト制御文字とシフトイン制御文字の間は、0 または偶数バイトにする必要があります。
リテラルの DBCS 部分では、 シフト・コードをネストすることはできません。
リテラルに含まれる 1 バイト文字に関する構文規則は、基本英数字リテラルの規則に従います。 リテラルに含まれる DBCS 文字に関する構文規則は、DBCS リテラルの規則に従います。
DBCS 文字を含む英数字リテラルに関する移動および比較の規則は、 DBCS 文字を含まない英数字リテラルに関する規則と同じです。
DBCS 文字を含む英数字リテラルの長さは、 シフト制御文字を含むそのリテラルのバイト数です。最大長は領域 B の 1 行で使用可能なスペースまでです。DBCS 文字を含む英数字リテラルは継続できません。
DBCS 文字を含む英数字リテラルは、英数字のカテゴリーに属しています。
DBCS 文字が含まれる英数字リテラルは、次のような場合には使用できません。
Enterprise COBOL ステートメントは、シフト・コードおよび文字コードによる影響を受けずに、DBCS 文字を含む英数字リテラルを処理します。バイト単位で処理するステートメント (例えば STRING および UNSTRING) を使用すると、 1 バイトの EBCDIC 文字と DBCS 文字の無効な組み合わせのストリングが生じることがあります。 バイト単位で処理を行うステートメントの中で DBCS 文字を含む 英数字リテラルおよびデータ項目を使用する方法については、「Enterprise COBOL プログラミング・ガイド」を参照してください。