LIMIT n
|
このドキュメントでは、次のトピックについて説明します。
関連ステートメント:ACCEPT/REJECT | AT BREAK | AT START OF DATA | AT END OF DATA | BACKOUT TRANSACTION | BEFORE BREAK PROCESSING | DELETE | END TRANSACTION | FIND | GET | GET SAME | GET TRANSACTION | HISTOGRAM | PASSW | PERFORM BREAK PROCESSING | READ | RETRY | STORE | UPDATE
関連機能グループ:「データベースへのアクセスと更新」
LIMIT
ステートメントは、FIND
、READ
または HISTOGRAM
ステートメントで開始された処理ループの実行回数を制限するために使用します。
制限値は、他の LIMIT
ステートメントで上書きされるまで、プログラム内の後続のすべての処理ループに有効となります。
LIMIT
ステートメントは、制限値が明示されている個々のステートメント(例:FIND(n) ...
)には適用されません。
制限値に達すると処理が終了し、メッセージが表示されます。また、処理ループが制限値を超えた場合の反応を決定するセッションパラメータ LE
も参照してください。
LIMIT
ステートメントの指定がなければ、Natural インストール時に Natural プロファイルパラメータ LT
と一緒に定義されたデフォルトのグローバル制限が使用されます。
処理ループが制限に達したかどうかを確定するために、ループ内で読み込んだ各レコードを制限に対してカウントします。 処理ループの制限には以下が適用されます。
ACCEPT
/REJECT
ステートメントで排除されたレコードは、制限数にカウントされます。
LIMIT n |
制限値の指定
制限値 n は 0~4294967295(リーディングゼロはオプション)の数値定数で指定します。 制限値がゼロであれば、処理ループに入りません。 |
---|
** Example 'LMTEX1': LIMIT ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 PERSONNEL-ID 2 NAME 2 CITY END-DEFINE * LIMIT 4 * READ EMPLOY-VIEW BY NAME STARTING FROM 'BAKER' DISPLAY NOTITLE NAME PERSONNEL-ID CITY *COUNTER END-READ * END
NAME PERSONNEL CITY CNT ID -------------------- --------- -------------------- ----------- BAKER 20016700 OAK BROOK 1 BAKER 30008042 DERBY 2 BALBIN 60000110 BARCELONA 3 BALL 30021845 DERBY 4
** Example 'LMTEX2': LIMIT (valid for two database loops) ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 NAME END-DEFINE * LIMIT 3 * FIND EMPLOY-VIEW WITH NAME > 'A' READ EMPLOY-VIEW BY NAME STARTING FROM 'BAKER' DISPLAY NOTITLE 'CNT(0100)' *COUNTER(0100) 'CNT(0110)' *COUNTER(0110) END-READ END-FIND * END
CNT(0100) CNT(0110) ----------- ----------- 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3