PROCEDURE P_CURS_BONUS
IS
v_bonus number(30,2);
rec_bonus xl_emp_bonus%ROWTYPE;
CURSOR curs_bonus IS
SELECT *
FROM xl_emp_bonus
FOR UPDATE OF bonus;
BEGIN
OPEN curs_bonus;
LOOP
FETCH curs_bonus INTO rec_bonus;
exit when curs_bonus%NOTFOUND;
v_bonus := 0.20;
IF rec_bonus.salary > 5000 THEN
v_bonus := 0.05;
END IF;
UPDATE xl_emp_bonus
SET bonus = rec_bonus.salary * v_bonus
WHERE CURRENT OF curs_bonus;
END LOOP;
CLOSE curs_bonus;
END;