変更の始まり

DATA キーワードの例

以下の例では、次のフィールドがファイル内にあると想定されています。
  • CHAR37 は、EBCDIC CCSID 37 の英数字フィールドです。
  • CHAR1208 は、UTF-8 CCSID 1208 の英数字フィールドです。
  • GRAPH835 は、DBCS CCSID 835 のグラフィック・フィールドです。
  • GRAPH834 は、DBCS CCSID 834 のグラフィック・フィールドです。
次のようなデータ構造を想定します。
  • データ構造 custExactIn 内の各英数字サブフィールドの CCSID は、 ファイル内のフィールドと同じものになります。
  • データ構造 custNoexactIn 内の各英数字サブフィールドの CCSID は CCSID(*JOBRUN) になります。
  • 両方のデータ構造内の各グラフィック・サブフィールドの CCSID は、ファイル内のフィールドと同じものになります。
   DCL-DS custExactIn LIKEREC(custRec:*INPUT) CCSID(*EXACT);
   DCL-DS custNoexactIn LIKEREC(custRec:*INPUT) CCSID(*NOEXACT);

ファイルに対して DATA(*CVT) が指定され、ジョブ CCSID が 937 である

CCSID 937 に関連した DBCS CCSID は 835 です。

   DCL-F custFile USAGE(*UPDATE) DATA(*CVT);

   READ custFile custExactIn;
   READ custFile custNoexactIn;
  • 両方の READ 命令で、データベースはファイル内の英数字データ を入力バッファー内では CCSID 937 に変換し、ファイル内の グラフィック・データを入力バッファー内では CCSID 835 に変換します。
  • 最初の READ 命令では、入力バッファー内のデータと custExactIn データ構造 内のサブフィールドとの間で、以下の変換が実行されます。
    • サブフィールド CHAR37 については、データは CCSID 937 から CCSID 37 に変換されます。
    • サブフィールド CHAR1208 については、データは CCSID 937 から CCSID 1208 に変換されます。
    • サブフィールド GRAPH835 については、バッファー内のデータと サブフィールド内のデータは両方とも CCSID 835 であるため、CCSID 変換は不要です。
    • サブフィールド GRAPH834 については、データは CCSID 835 から CCSID 834 に変換されます。
  • 2 番目の READ 命令では、英数字サブフィールドに関して CCSID 変換は不要です。 これは、入力バッファー内の各フィールドのデータの CCSID は custNoexactIn データ構造内の 対応するサブフィールドのものと同じであるためです。 サブフィールド GRAPH834 については、データは CCSID 835 から CCSID 834 に変換されます。

ファイルに対して DATA(*CVT) が指定され、ジョブ CCSID が 65535 である

デフォルトのジョブ CCSID が 937 であると想定します。 これは、CCSID(*JOBRUN) の英数字プログラム・フィールドに想定される CCSID です。

   DCL-F custFile USAGE(*UPDATE) DATA(*CVT);

   READ custFile custExactIn;
   READ custFile custNoexactIn;
  • 両方の READ 命令で、ファイル内のデータと入力バッファーとの間で 変換は行われません。 入力バッファー内のフィールドの CCSID は、ファイル内のフィールドのものと同じです。
  • 最初の READ 命令では、入力バッファー内の各フィールド のデータの CCSID と custExactIn データ構造内の対応するサブフィールドの CCSID は 同じであるため、CCSID 変換は不要です。
  • 2 番目の READ 命令では、入力バッファー内の データと custNoxactIn データ構造内のサブフィールドとの 間で、以下の変換が実行されます。
    • サブフィールド CHAR37 については、データは CCSID 37 からジョブ CCSID 937 に変換されます。
    • サブフィールド CHAR1208 については、データは CCSID 1208 からジョブ CCSID 937 に変換されます。
    • サブフィールド GRAPH835 については、バッファー内のデータと サブフィールド内のデータは両方とも CCSID 835 であるため、CCSID 変換は不要です。
    • サブフィールド GRAPH834 については、バッファー内のデータと サブフィールド内のデータは両方とも CCSID 834 であるため、CCSID 変換は不要です。

ファイルに対して DATA(*NOCVT) が指定されている

ジョブ CCSID またはデフォルトのジョブ CCSID が 937 であると想定します。 これは、CCSID(*JOBRUN) の英数字プログラム・フィールドに想定される CCSID です。

READ 命令は、ジョブ CCSID が 65535 である上記のシナリオと同じです。

変更の終わり