戻り値
値を戻すプロシージャーは、本質的には、組み込み関数に似たユーザー定義関数
です。サブプロシージャーの戻り値を定義するためには、以下のことが必要です。
- 戻り値をサブプロシージャーのプロトタイプとプロシージャー・インターフ ェース定義の両方に定義します。
- 戻り値が入れられる式を指定した RETURN 命令をコーディングします。
プロシージャー・インターフェース仕様 (DCL-PI ステートメント、
または、24 から 25 桁目に PI がある定義仕様書) に、戻り値の長さとタイプを定義します。
次のキーワードも使用することができます。
- DATFMT(形式)
- 戻り値は、キーワードによって指定された日付の形式を持ちます。
- DIM(N)
- 戻り値は、要素数が N の配列です。
- LIKE(名前)
- 戻り値は、キーワードによって指定された項目と同じに定義されます。
- LIKEDS(名前)
- 戻り値は、キーワードによって指定されたデータ構造と同様に定義されているデータ構造です。
- LIKEREC(名前 {,タイプ })
- 戻り値は、キーワードによって指定されたレコード名と同様に定義されているデータ構造です。
- PROCPTR
- 戻り値は、プロシージャー・ポインターです。
- TIMFMT(形式)
- 戻り値は、キーワードによって指定された時刻の形式を持ちます。

値を呼び出し元に戻すためには、戻り値が入れられる式を指定した RETURN 命令を
コーディングしなければなりません。 RETURN 命令の
オペランドには、EVAL の式と同じ規則が適用
されます。実際の戻り値が EVAL 式の左側と同じ
働きをし、RETURN 命令のオペランドが右側と同じ役割を果たします。サブプロシージャーに戻り値が定義されている場合には、RETURN 命令が実行され
ることを確認しなければなりません。これを確認しておかないと、サブプロシー
ジャーの呼び出し元には例外が出されることになります。