更新日期:2024年09月11日
在本例中,THEN到END IF之间的语句仅在sales大于quota+200的情况下执行。
DECLARE PROCEDURE p (
sales NUMBER, quota NUMBER, emp_id NUMBER) IS
bonus NUMBER := 0;
updated VARCHAR2(3) := 'No';
BEGIN
IF sales > (quota + 200) THEN
bonus := (sales - quota)/4;
UPDATE employees
SET salary = salary + bonus
WHERE employee_id = emp_id;
updated := 'Yes';
END IF;
DBMS_OUTPUT.PUT_LINE ('Table updated? ' || updated || ', ' ||
'bonus = ' || bonus || '.');
END p;
BEGIN
p(10100, 10000, 120);
p(10500, 10000, 121);
END;
--Result:
--Table updated? No, bonus = 0.
--Table updated? Yes, bonus = 125.