在这个例子中,当sales大于50000时,第一个和第二个条件是正确的。但是,因为第
一个条件是正确的,所以分配了bonus值1500,而第二个条件没有经过测试。在bonus被
分配了价值之后,控制传递到DBMS_OUTPUT.PUT_LINE调用。
DECLARE PROCEDURE p (sales NUMBER) IS
bonus NUMBER := 0;
BEGIN
IF sales > 50000 THEN
bonus := 1500;
ELSIF sales > 35000 THEN
bonus := 500;
ELSE
bonus := 100;
END IF;
DBMS_OUTPUT.PUT_LINE ('Sales = ' || sales || ', bonus = ' || bonus || '.');
END p;
BEGIN
p(55000);
p(40000);
p(30000);
END;
--Result:
--Sales = 55000, bonus = 1500.
--Sales = 40000, bonus = 500.
--Sales = 30000, bonus = 100.