User Tools

Site Tools


kurs:bonus_cursor
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
kurs/bonus_cursor.txt · Last modified: 2014/09/10 21:22 (external edit)