複数表のロードでは、複数のINTO
TABLE
句を指定します。このとき最初の表の最初の列に対してPOSITION(*)
を使用すると、論理レコードの先頭から相対的に位置が計算されます。2番目以降の表の最初の列に対してPOSITION(*)
が使用された場合は、その時点で最後にロードされた表の最終列から相対的に位置が計算されます。
したがって、2番目以降のINTO
TABLE
句の処理開始時に、位置が自動的に論理レコードの先頭に設定されるわけではありません。このため、複数のINTO
TABLE
句を指定して、同一物理レコード中の異なる箇所を処理できます。例については、「複数の論理レコードの抽出」を参照してください。
論理レコード中のデータには、2つの表の両方ではなく、片方の表のみにロードするデータもあります。その場合は、POSITION
を設定しなおす必要があります。このとき、位置指定を省略するか、またはINTO TABLE
句で先頭フィールドに対するPOSITION(*+
n
)
を指定するかわりに、POSITION(1)
またはPOSITION(
n
)
を指定します。