変更の始まり

入出力命令中の CCSID 変換

英数字フィールド、グラフィック・フィールド、または UCS2 フィールド が入力命令または出力命令で使用されている場合、フィールド内のデータと、ファイル用の入力バッファーまたは出力バッファー内のデータとの 間で、CCSID 変換が実行されることがあります。入力命令または出力命令でフィールドが使用されるケースは次のとおりです。
  • フィールドが、命令に使用される入力仕様または出力仕様に含まれている。
  • フィールドが、キー付き命令の検索引数に含まれている。
  • フィールドが、%FIELDS 組み込み関数によって指定されるフィールド・リスト中に含まれている。
  • フィールドが、%KDS 組み込み関数で使用されるデータ構造のサブフィールドである。
  • フィールドが、入力命令または出力命令の結果のデータ構造で使用されるデータ構造のサブフィールドである。

CCSID 変換はデータベースによって実行されることもあります。 その場合の変換は、レコードからのデータを入力バッファーに入れるとき、出力バッファーからの データをレコードに入れるとき、または、キー付き命令の 検索引数を解釈するときに、英数字フィールドおよびグラフィック・フィールドに対して行われます。

以下のすべての条件が真の場合、入力バッファーまたは出力バッファー内のデータ とプログラム・フィールドとの間で CCSID 変換が実行されます。
  • プログラム・フィールドの CCSID が 65535 (*HEX) ではない。
  • ファイル内のフィールドの CCSID が 65535 ではない。
  • 入力バッファーまたは出力バッファー内のフィールドの CCSID が、フィールドの CCSID と異なる。
  • プログラム・フィールドの CCSID が既知であるか、ファイルに対して DATA キーワードが有効になっている。 UCS-2 フィールドの CCSID は常に既知です。 グラフィック・フィールドの CCSID は、CCSID(*GRAPH:*IGNORE) が有効になっている場合を除いて、既知です。 英数字フィールドの CCSID について詳しくは、データの CCSID を参照してください。 ファイルに対して DATA キーワードが有効かどうかについて詳しくは、DATA(*CVT | *NOCVT) を参照してください。
警告: ファイルに対して DATA キーワードが有効になっていないか、 または、英数字フィールドの CCSID が既知であると見なされない場合、RPG は、実行時にジョブ CCSID が 65535 で あると、プログラム内の英数字データの CCSID について誤った想定をすることがあります。
変更の終わり