SEARCH(表引き)文は,指定した条件を満足する表要素を探し,対応する指標の値がその表要素を指すようにする.
【書き方1】
【書き方2】
(1) | 一意名-1は,添字や部分参照子を付けてはならない.その一意名-1の記述には,INDEXED BY指定を持つOCCURS句がなければならない.更に,書き方2における一意名-1の記述には,OCCURS句の中にKEY IS(キーは)指定が入っていなければならない. |
(2) | 一意名-2は,指標データ項目又は整数項目でなければならない.一意名-1に関係付けられたOCCURS句中のINDEXED BY指定で記述した最初の(又は唯一の)指標名によって一意名-2に添字を付けてはならない. |
(3) | 書き方1の条件-1は,どのような条件式であってもよい. |
(4) | 書き方2では,条件名は,単一の値だけをもつように定義しておかなければならない. そして,条件名に関連付けられたデータ名は,一意名-1のOCCURS句中のKEY IS指定の中に書いていなければならない.データ名-1,データ名-2は,修飾してもよい.データ名-1,データ名-2は,必要なら他の添字とともに,一意名-1用の最初の指標名で添字付けしなければならない.更に,これらのデータ名は,一意名-1のOCCURS句中のKEY IS指定の中に書いてなければならない.一意名-3若しくは一意名-4又は算術式-1若しくは算術式-2の中の一意名などは,一意名-1のOCCURS句のKEY IS指定の中に書いてあってはならない.また,これらは,一意名-1用の最初の指標名で添字付けしてあってはならない.
|
次の表がデータ部で定義されているとする.
このとき,手続き部での正しいWHEN指定は,次のようになる.
(5) | END-SEARCH(SEARCH文の終わり)指定を書いた場合は,NEXT SENTENCE(次の完結文)指定を書いてはならない. |
(6) | データ名-1,データ名-2,一意名-3,一意名-4,定数-1及び定数-2の項類は,ブールであってはならない. |
(1) | SEARCH文の範囲は,次のいずれかで終わる.
|
||||||||||||||
(2) | 書き方1のSEARCH文は,そのときの指標の値から始める遂次表引き操作を行う.
|
||||||||||||||
(3) | 書き方2のSEARCH文では,SEARCH ALL(非遂次表引き)の操作結果は,次の条件を満足するときだけ規定する.
|
||||||||||||||
(4) | 書き方2のSEARCH文は,非遂次表引き操作を行う.
|
||||||||||||||
(5) | 無条件文-1又は無条件文-2がGO TO(飛越し)文で終わっていないとき,その無条件文を実行した後,制御はSEARCH文の終わりに移る. |
||||||||||||||
(6) | 書き方2で,表引き操作に使われる指標名は,一意名-1のOCCURS句中のINDEXED BY指定で最初に書かれた指標名だけであり,その他の指標名の値は変更されない. |
||||||||||||||
(7) | 書き方1で, VARYING(変更)指定を書かないと,一意名-1のOCCURS句中のINDEXED BY指定に書いた最初の指標名だけが,表引き操作に用いられる.一意名-1用の他の指標名の値は変更されない. |
||||||||||||||
(8) | 書き方1で,VARYING指定を書き,その指定の指標名-1が,一意名-1のOCCURS句中のINDEXED BY指定に書いてある場合,この表引きにその指標名を使う.そうでない場合又はVARYING指定に一意名-2を書く場合,一意名-1のOCCURS句中のINDEXED BY指定で与えた最初の指標名だけを表引きに使う.この場合,更に次の操作も行う.
|
||||||||||||||
(9) |
END-SEARCH指定は,SEARCH文の範囲を区切る. |
||||||||||||||
(10) | 書き方1のSEARCH文でWHEN指定が二つある場合の表引き操作の流れ図を,図3.11に示す. |
図3.11 WHEN指定が二つある場合の表引き操作の流れ図