参照変更は、他のコンピューター言語におけるサブストリング化と類似しています。 参照変更は、データ項目の開始桁と長さを指定することによって、データ項目を定義します。
形式 >>-+-データ名-1-------------------------------+-----------------> '-FUNCTION--関数名-1--+------------------+-' | .--------. | | V | | '-(----引数-1-+--)-' >--(--左端桁:--+------+--)------------------------------------->< '-長さ-'
+----------------------------------IBM 拡張----------------------------------+
ブール・データ項目を参照することはできません。
TYPE 文節を使用して定義した項目を参照してはなりません。
+------------------------------End of IBM 拡張-------------------------------+
詳細は 組み込み関数を参照してください。
左端桁と長さの和から 1 を引いた値は、データ名-1 または関数名-1 によって参照されるデータ項目内の文字数以下でなければなりません。 長さを省略すると、使用される長さは、データ名-1 または関数名-1 によって参照されるデータ項目内の文字数に 1 を加え、さらにそこから左端桁を引いた値と同じになります。 長さの評価の結果は、正の非ゼロの整数でなくてはなりません。
+----------------------------------IBM 拡張----------------------------------+
DBCS または国別データ項目の場合、桁および長さは 2 バイト文字の数を参照します。
+------------------------------End of IBM 拡張-------------------------------+
参照変更は、ID による英数字、DBCS、または国別データ項目の参照が認められるところでは、許可されるのが普通です。
+----------------------------------IBM 拡張----------------------------------+
+------------------------------End of IBM 拡張-------------------------------+
データ名-1 または関数名-1 が参照するデータ項目の各文字には、左端桁から右端桁へ 1 ずつ増分する序数が割り当てられます。 左端桁には序数 1 が割り当てられます。 データ名-1 のデータ記述項目に SIGN IS SEPARATE 文節が含まれている場合、符号の桁にはそのデータ項目内の序数が割り当てられます。
参照変更は、データ名-1 または関数名-1 およびその引数によって参照されるデータ項目のサブセットとその引数である固有のデータ項目を作成します。 この固有データ項目は、JUSTIFIED 文節なしの基本項目と見なされます。
データ名-1 が参照変更される場合、固有データ項目は、データ名-1 によって参照されるデータ項目に対して定義されたものと同じクラスとカテゴリーを持っています。 しかし、データ名-1 のカテゴリーが数字、数字編集、英数字編集、または外部浮動小数点である場合、固有データ項目のクラスとカテゴリーは英数字です。
関数が参照変更される場合、固有データ項目は、関数の引数によって英数字、DBCS、または国別のクラスおよびカテゴリーを持ちます。
長さが指定されない場合、作成された固有のデータ項目は、左端桁によって識別された文字から、データ名-1 または関数名-1 によって参照されたデータ項目の右端桁までの範囲となります。
関連情報
1 つのオペランドの参照変更は次のように計算されます。
この例では、変数 whole-name 内の最初の 25 字を、変数 last-name に転送しています。
MOVE whole-name(1:25) TO last-name
範囲外の参照変更コンポーネント、たとえば左端の桁がゼロの場合などには、システム・メッセージが生成されます。
これは、添え字範囲や文字ストリング境界内でのエラーを知らせるメッセージと同じものです。 (このメッセージは、CRTCBLMOD または CRTBNDCBL コマンドで RANGE オプションが指定された場合にだけ生成されます。)
+----------------------------------IBM 拡張----------------------------------+
INDICATORS 句は参照変更をサポートしません。
+------------------------------End of IBM 拡張-------------------------------+
次の制約事項は以下にリストするステートメントに適用されます。