13.8 CASE文

CASE文を使用すると、一連の条件を基に、対応する文を選択して実行できます。

単純なCASE文は、単一の式を評価して、可能性のある複数の値と比較します。

検索CASE文は、複数のブール式を評価して、値がTRUEである最初の式を選択します。

ここでのトピック

構文

simple_case_statement ::=

セマンティクス

simple_case_statement

selector

値が1回評価され、複数の選択肢から1つ選択するためにその値が使用される式。selectorの値は、BLOBBFILEまたはユーザー定義型を除く任意のPL/SQL型になります。

WHEN selector_value THEN statement

selector_valueは、BLOBBFILEまたはユーザー定義型を除く任意のPL/SQL型の式になります。

selector_valueは順番に評価されます。selector_valueの値がselectorの値と等しい場合、そのselector_valueに関連付けられているstatementが実行され、CASE文は終了します。後続のselector_valueは評価されません。

注意:

statementによってデータベースが変更され、非決定的なファンクションが起動される場合があります。C言語のswitch文のようなfall-throughのメカニズムはありません。

ELSE statement [statement ]...

statementは、selectorと同じ値を持つselector_valueが存在しない場合にのみ実行されます。

selectorと同じ値を持つselector_valueが存在しない場合にELSE句を指定しないと、システムによって事前定義の例外CASE_NOT_FOUNDが呼び出されます。

label

文を識別するラベル(「statement ::=」および「label」を参照)。

searched_case_statement

WHEN boolean_expression THEN statement

boolean_expressionは順番に評価されます。boolean_expressionの値がTRUEの場合、そのboolean_expressionに関連付けられているstatementが実行され、CASE文は終了します。後続のboolean_expressionは評価されません。

注意:

statementによってデータベースが変更され、非決定的なファンクションが起動される場合があります。C言語のswitch文のようなfall-throughのメカニズムはありません。

ELSE statement [statement ]...

statementは、TRUEの値を持つboolean_expressionが存在しない場合にのみ実行されます。

TRUEの値を持つboolean_expressionが存在しない場合にELSE句を指定しないと、システムによって事前定義の例外CASE_NOT_FOUNDが呼び出されます。

label

文を識別するラベル(「statement ::=」および「label」を参照)。

関連トピック

この章:

他の章:

関連項目: