シーケンス制御文は、指定されたラベル文にジャンプするか、何も処理を行わないことを許可します。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供しています。
IF および LOOP ステートメントと比較して、シーケンス制御ステートメントの GOTO と NULL はPLプログラミングにおける重要性が低いです。PLでは、指定されたステートメントにジャンプするために GOTO ステートメントを使用することはほとんどありません。NULL ステートメントは何も実行せず、通常は条件ステートメントの意味と操作を説明して可読性を向上させるために使用されます。
GOTOステートメント
GOTO ステートメントは、条件なくコードブロック内の他の場所にジャンプして実行を続けることをサポートします。事前にラベルを定義し、その後 GOTO を使用してラベルにジャンプする必要があります。ラベルはステートメントの前に配置する必要があり、ステートメントの途中に現れることはできません。
例:
obclient> DECLARE
cnt NUMBER := 0;
BEGIN
WHILE cnt < 3 LOOP
DBMS_OUTPUT.PUT_LINE (cnt);
cnt := cnt + 1;
GOTO JUMP_OUT;
END LOOP;
cnt := 0;
<<JUMP_OUT>>
DBMS_OUTPUT.PUT_LINE (cnt);
END;
/
Query OK, 0 rows affected
0
1
NULLステートメント
NULL は空のステートメントとして現れ、何も実行せず、通常はプレースホルダーとして使用されます。例えば、コードデバッグの過程で、まだ完全に書き込まれていない場合、NULL ステートメントを使用してプレースホルダーとして利用し、構文エラーを避けることができます。