This shows you the differences between two versions of the page.
— |
kurs:bonus_cursor [2014/09/10 21:22] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <code> | ||
+ | PROCEDURE PC_BONUS_CURSOR | ||
+ | IS | ||
+ | cursor c_max_bonus is | ||
+ | SELECT sby_emp_bonus.emp_id, sby_emp_bonus.last_name, sby_emp_bonus.salary | ||
+ | FROM sby_emp_bonus | ||
+ | ORDER BY sby_emp_bonus.salary DESC; | ||
+ | type type_bonus is record ( | ||
+ | emp_id varchar2(10), | ||
+ | last_name varchar2(30), | ||
+ | salary number(8,2)); | ||
+ | |||
+ | first_bonus_record type_bonus; | ||
+ | akt_bonus_record type_bonus; | ||
+ | |||
+ | i_Prozent number(5,2); | ||
+ | i_Differenz number(10); | ||
+ | BEGIN | ||
+ | open c_max_bonus; | ||
+ | |||
+ | fetch c_max_bonus into first_bonus_record; | ||
+ | |||
+ | dbms_output.put_line(first_bonus_record.last_name||' hat Chefgehalt von '||first_bonus_record.salary); | ||
+ | for iInd in 1..9 loop | ||
+ | fetch c_max_bonus into akt_bonus_record; | ||
+ | i_Prozent := (akt_bonus_record.salary * 100) / first_bonus_record.salary; | ||
+ | i_Differenz := first_bonus_record.salary - akt_bonus_record.salary; | ||
+ | dbms_output.put_line(akt_bonus_record.last_name||' hat Differenz '||i_Differenz||' und prozentuallen Anteil von '||i_Prozent||' % '); | ||
+ | |||
+ | first_bonus_record := akt_bonus_record; | ||
+ | end loop; | ||
+ | |||
+ | close c_max_bonus; | ||
+ | |||
+ | END; -- Procedure | ||
+ | </code> |