+----------------------------------IBM 拡張----------------------------------+
BY VALUE 句が指定された場合は、送り出しデータ項目への参照ではなく、パラメーターの値が引き渡されます。 呼び出し先プログラムは、BY VALUE パラメーターに対応する仮パラメーターを変更できます。 ただし、呼び出し先プログラムは送り出しデータ項目の一時コピーにアクセスできるため、その変更はパラメーターには影響しません。
BY VALUE パラメーターはもともと非 COBOL プログラム (C など) との通信に使用することを意図したものですが、COBOL から COBOL への呼び出しにも使用できます。 この場合、BY VALUE は、CALL USING 句におけるパラメーターと PROCEDURE DIVISION USING 句におけるそれに対応する仮パラメーターの両方に対して指定または暗黙に指定しなければなりません。
BY CONTENT 句、BY VALUE 句および BY REFERENCE 句は、他の BY CONTENT 句、BY VALUE 句または BY REFERENCE 句を見つけるまでそれらに続くパラメーターに適用されます。 これらの句が最初のパラメーターより前に現れない場合は、BY REFERENCE が想定されます。
BY VALUE 句は、リンケージ・タイプのプログラムを使用して呼び出されたプログラムには使用できません。
この句は、下記のものになります。
整数-1 は 2 進数値として渡されます。整数-2 を指定しないと、整数-1 が 4 バイトの 2 進数値として渡されます。 整数-2 は、整数-1 のサイズを指定します。 これは、1、2、4 または 8 のいずれかです。
+------------------------------End of IBM 拡張-------------------------------+