Plsql-if-then

提供:Dev Guides
移動先:案内検索

PL/SQL-IF-THENステートメント

これは、 IF 制御ステートメントの最も単純な形式であり、プログラム実行の制御フローの意思決定および変更で頻繁に使用されます。

  • IFステートメント*は、キーワード THEN および END IF で囲まれた一連のステートメントに条件を関連付けます。 条件が TRUE の場合、ステートメントが実行され、条件が FALSE または NULL の場合、 IF ステートメントは何もしません。

構文

*IF-THEN* ステートメントの構文は-
IF condition THEN
   S;
END IF;

ここで、_condition_はブールまたは関係条件であり、Sは単純または複合ステートメントです。 以下は、IF-THENステートメントの例です-

IF (a <= 20) THEN
   c:= c+1;
END IF;

ブール式の条件がtrueと評価されると、* ifステートメント*内のコードブロックが実行されます。 ブール式の評価がfalseの場合、* ifステートメント*の終了後(終了end ifの後)の最初のコードセットが実行されます。

流れ図

PL/SQL if-thenステートメント

例1

概念を理解するのに役立つ例を試してみましょう-

DECLARE
   a number(2) := 10;
BEGIN
   a:= 10;
  -- check the boolean condition using if statement
   IF( a < 20 ) THEN
      -- if condition is true then print the following
      dbms_output.put_line('a is less than 20 ' );
   END IF;
   dbms_output.put_line('value of a is : ' || a);
END;
/

上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-

a is less than 20
value of a is : 10

PL/SQL procedure successfully completed.

例2

link:/plsql/plsql_variable_types [PL/SQL変数タイプ]で作成したように、テーブルとテーブル内のいくつかのレコードがあるとします。

DECLARE
   c_id customers.id%type := 1;
   c_sal  customers.salary%type;
BEGIN
   SELECT  salary
   INTO  c_sal
   FROM customers
   WHERE id = c_id;
   IF (c_sal <= 2000) THEN
      UPDATE customers
      SET salary =  salary + 1000
         WHERE id = c_id;
      dbms_output.put_line ('Salary updated');
   END IF;
END;
/

上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-

Salary updated

PL/SQL procedure successfully completed.