文字形式

固定長文字形式は、1 バイトまたはそれ以上の 固定した長さを持ちます。

可変長文字形式については、可変長の文字形式、図形形式および UCS-2 形式を参照してください。

変更の始まり 文字フィールドを定義するには、 自由形式定義に CHAR または VARCHAR キーワードを指定するか、 または、固定形式仕様書のデータ・タイプ記入項目に A を指定 します。パラメーターが文字フィールドである場合には、 定義仕様書の LIKE キーワードを使用して文字フィールドを定義することもできます。 変更の終わり

変更の始まり デフォルトの初期化値はブランクです。 ブランクは、EBCDIC データの場合は x'40'、ASCII または UTF-8 データの場合は x'20' です。 変更の終わり

変更の始まり 文字フィールドのデフォルト CCSID は、 制御ステートメントで CCSID(*CHAR) キーワードを 使用するか、または /SET 指示を使用して指定できます。 定義ステートメント CCSID キーワードを使用して明示的に CCSID を指定することもできます。 変更の終わり

変更の始まり

文字形式データの CCSID

以下のうち少なくとも 1つが真の場合、文字データには明示的または暗黙的に指定された CCSID があると見なされます。
  • 制御ステートメントに CCSID(*EXACT) が指定されている。
  • 制御ステートメントに *JOBRUN 以外の CCSID で CCSID(*CHAR) が指定されている。
  • 有効である /SET ステートメントに CCSID(*CHAR) が指定されている。
  • 文字サブフィールドが含まれているデータ構造に対して CCSID(*EXACT) または CCSID(*NOEXACT) が 指定されている。
  • 文字項目の定義に CCSID キーワードが指定されている。
文字データには明示的または暗黙的に指定された CCSID がないと見なされる場合、次のようになります。
  • CCSID(*CHAR:*JOBRUN) が有効である場合、データの CCSID はジョブ CCSID です。
  • それ以外の場合、CCSID は、ジョブ CCSID に関連した混合グラフィック CCSID であると想定されます。
    警告: CCSID(*CHAR:*JOBRUN) が指定されていて、 制御ステートメントのキーワード CCSID(*EXACT) が指定されていない場合、 明示的に指定された CCSID を持たない英数字フィールドは、 RPG コンパイラーが入力バッファーまたは出力バッファーとプログラム・フィールド との間で CCSID 変換を実行するかどうかを判断するときに、既知の CCSID を持っていないと 見なされます。 詳細については、入出力命令中の CCSID 変換を参照してください。
文字データの CCSID が 65535 (*HEX) の場合、 このデータが別の CCSID の文字データと一緒に使用されるときには CCSID 変換は実行されず、 このデータがグラフィック・データまたは UCS-2 データと一緒に使用されるときには CCSID 変換は許可されません。 以下の場合は、文字項目の CCSID は 65535 です。
  • 項目が 16 進リテラルである。
  • CCSID(*HEX) または CCSID(65535) が、項目の定義にある CCSID キーワードで明示的または暗黙的に 指定されている。
  • デフォルト文字 CCSID が 65535 である。 デフォルト文字 CCSID の設定方法については、CCSID 制御キーワードを参照してください。
  • 項目が、CCSID オペランドに *HEX が指定された %CHAR 組み込み関数の結果である。
  • 項目が、外部記述データ構造または LIKEREC キーワードを使用して定義された データ構造内にあるサブフィールドであり、 データ構造の定義に CCSID(*EXACT) が指定されていて、 外部フィールドのタイプが 16 進である。
変更の終わり