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の後)の最初のコードセットが実行されます。
流れ図
例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.