シーケンス制御文は、指定されたラベル文にジャンプするか、何も処理を行わないことを許可します。
適用対象
この内容は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 文をプレースホルダーとして使用することで、構文エラーを回避できます。