1. SORT
SORTステートメントは、1つ以上のファイルからレコードを受け取り、記述されたキーに従ってソートします。
以下は、ステートメントの各設定項目についての説明です。
-
file-name-1
-
ソートされるレコードが含まれているファイル名であり、SD項目に記述されている名前です。
-
-
identifier-1
-
ソートされるレコードが含まれているデータ記述(data description)です。グループ・タイプであり、ソートしたデータが含まれている必要があります。
-
-
ASCENDING KEY句およびDESCENDING KEY句
-
ソート・キーが昇順なのか降順なのかを指定します。
項目 説明 data-name-1
SORTステートメントで使用されるKEYデータ項目を記述します。
data-name-1は、file-name-1のレコードに含まれているデータ項目である必要があります。データ項目が記述されている順に、左から右へと重要度の高いキーとなります。つまり、最初に記述されたデータ項目が最も重要なキーとなり、その次に出てくるデータ項目が2番目の重要なキーです。
-
KEYデータ項目は、各入力ファイルの中で物理的に同じ位置に存在する必要があり、データ形式も同じでなければなりません。ただし、データ名は同じである必要はありません。
-
file-name-1が1つ以上のレコード記述を有する場合、KEYデータ項目は、その中のいずれかのレコードに記述されている必要があります。
-
KEYデータ項目は、OCCURS節を含むことができず、OCCURS節を含む項目に従属されてはなりません。
-
KEYデータ項目は、修飾することが可能であり、以下のデータ・カテゴリのいずれかになります。
-
英字、、英数字、英数字編集
-
数字
-
数字編集(with USAGE DISPLAY)
-
内部浮動小数点またはDISPLAY浮動小数点
-
file-name-3が指標ファイル(indexed file)を参照している場合、data-name-1はASCENDING句で記述される必要があり、データ項目は、指標ファイルの基本レコード・キーと同じ位置を指定しなければなりません。
-
-
-
DUPLICATES句
-
DUPLICATES句が記述されてない場合、同じキーを持つレコードの順序は予測できません。
-
この句が指定されると、キーは同じレコードに対してソートされ、その後は以下のような順となります。
-
入力ファイルのレコード順と同じ順序
-
INPUT PROCEDUREが指定されているとき、RELEASEステートメントに使用されたレコードの順序
-
-
-
COLLATING SEQUENCE句
-
構文チェックのみ行われます。
-
-
USING句
-
入力ファイルを記述します。
項目 説明 file-name-2、...
入力ファイルを定義します。USING句が使用されると、入力ファイル(file-name-2、...、)のすべてのレコードがfile-name-1に自動転送されます。すべての入力ファイルは、データ部のFD項目に記述されている必要があります。
-
-
INPUT PROCEDURE句
-
INPUT PROCEDUREにはRELEASEステートメントがあり、一度に1つのレコードをfile-name-1が参照するファイルに転送します。
-
そのほか、様々なステートメント(OPEN、READ、CLOSEなど)を使用して、入力レコードを選択、コピー、変更することができます。ソート処理を実行する前に入力レコードを選択および変更するプロシージャ名を記述します。
項目 説明 procedure-name-1
INPUT PROCEDUREの最初の(または一意の)セクションまたは段落を記述します。
procedure-name-2
INPUT PROCEDUREの最後のセクションまたは段落を記述します。
-
-
GIVING句
-
出力ファイルを記述します。
項目 説明 file-name-3、...
出力ファイルを定義します。GIVING句が記述されると、ソートされたすべてのレコードは出力ファイルに自動転送されます。すべての出力ファイルはデータ部のFD項目に記述されている必要があります。
-
-
OUTPUT PROCEDURE句
-
出力プロシージャにはRETURNステートメントがあり、file-name-1が参照するファイルから一度に1つのレコードを受け取ります。そのほか、多様なステートメント(OPEN、WRITE、CLOSEなど)を使用して、出力レコードを選択、コピー、変更することができます。
-
ソート処理を実行した後、出力レコードを選択および変更するプロシージャ名を記述します。
項目 説明 procedure-name-3
出力プロシージャの最初の(または一意の)セクションまたは段落を記述します。
procedure-name-4
出力プロシージャの最後のセクションまたは段落を記述します。
-