グループ項目内でホスト変数が宣言されている場合、これらの変数をそれぞれ参照する必要のある SQL 文は、代わりにグループ名を参照することで参照を短縮できます。インジケーター変数をこれらのホスト変数に関連付ける必要がある場合には、ホスト変数と同じ数のインスタンスを持つインジケーター変数のテーブルを定義して、このテーブルを参照してください (OCCURS 句を持つ項目です。その項目を含むグループ項目ではありません)。
たとえば、次のようなホスト変数を定義したとします。
01 host-structure. 03 sumh pic s9(9) comp-5. 03 avgh pic s9(9) comp-5. 03 minh pic s9(9) comp-5. 03 maxh pic s9(9) comp-5. 03 varchar. 49 varchar-l pic s9(4) comp. 49 varchar-d pic x(1000). 01 indicator-table. 03 indic pic s9(4) comp-5 occurs 4. 01 redefines indicator-table. 03 indic1 pic s9(4) comp-5. 03 indic2 pic s9(4) comp-5. 03 indic3 pic s9(4) comp-5. 03 indic4 pic s9(4) comp-5.
この例では、次の手続き文は、
exec sql fetch s3 into :host-structure:indic end-exec
次の文に相当します。
exec sql fetch s3 into :sumh:indic1, :avgh:indic2, :minh:indic3, :maxh:indic4, :varchar end-exec
宣言された 4 つのインジケーター変数が、最初の 4 つのホスト変数に割り当てられます。5 つ以上宣言された場合は、5 つのホスト変数すべてが 1 つのインジケーター変数に関連付けられます。
インジケーター変数のテーブルは、相当する SQL 文を示すためのみに再定義されます (SQL 文では下付き文字指定は許可されていません)。必要に応じて、再定義を省略し、下付き文字指定を使用することで、COBOL プログラムでインジケーター変数を参照することもできます。