PROCEDURE SALARY_DIFF
IS
cursor bonus_salary is
SELECT
first_name,
last_name,
salary
FROM bonus
order by salary desc;
v_first_name bonus.last_name%TYPE;
v_last_name bonus.last_name%TYPE;
v_salary bonus.salary%TYPE;
v_diff bonus.salary%TYPE;
v_old bonus.salary%TYPE;
BEGIN
open bonus_salary;
select max(salary) into v_old from bonus;
loop
fetch bonus_salary into v_first_name, v_last_name, v_salary;
exit when bonus_salary%notfound;
v_diff := v_salary - v_old;
-- dbms_output.put_line(v_last_name||' '||v_salary||' '||v_diff);
v_old := v_salary;
update bonus set difference = v_diff where
first_name = v_first_name and
last_name = v_last_name;
end loop;
close bonus_salary;
END; -- Procedure