Plsql-goto-statement
提供:Dev Guides
PL/SQL-GOTOステートメント
PL/SQLプログラミング言語の GOTO ステートメントは、GOTOから同じサブプログラム内のラベル付きステートメントへの無条件ジャンプを提供します。
注-GOTOステートメントの使用は、プログラムの制御フローをトレースすることを難しくし、プログラムを理解しにくく、変更しにくくするため、どのプログラミング言語でも推奨されません。 GOTOを使用するプログラムは、GOTOを必要としないように書き換えることができます。
構文
PL/SQLのGOTO文の構文は次のとおりです-
流れ図
例
上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-
GOTOステートメントの制限
PL/SQLのGOTOステートメントは、次の制限を課します-
- GOTOステートメントは、IFステートメント、CASEステートメント、LOOPステートメント、またはサブブロックに分岐できません。
- GOTOステートメントは、IFステートメントの句から別の句に、またはCASE文のWHEN句から別の句に分岐できません。
- GOTOステートメントは、外側のブロックからサブブロック(つまり、内側のBEGIN-ENDブロック)に分岐できません。
- GOTOステートメントは、サブプログラムから分岐できません。 サブプログラムを早期に終了するには、RETURNステートメントを使用するか、GOTOをサブプログラムの終了直前の場所に分岐させます。
- GOTOステートメントは、例外ハンドラーから現在のBEGIN-ENDブロックに戻ることはできません。 ただし、GOTOステートメントは、例外ハンドラーから外側のブロックに分岐できます。