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 である上記のシナリオと同じです。
