Kursory i wyjątki - zadania

 

1.      Zdefiniuj kursor zawierający nazwiska i daty zatrudnienia wszystkich asystentów. Posłuż się tym kursorem do wyświetlenia następujących informacji (wykorzystaj polecenia OPEN-FETCH-CLOSE).

 

JEZIERSKI pracuje od 01-10-1992

MATYSIAK pracuje od 01-09-1993

KONOPKA pracuje od 01-10-1993

HAPKE pracuje od 01-09-1992

 

2.      Zdefiniuj kursor, dzięki któremu będzie można wyświetlić 3 najlepiej zarabiających pracowników. Posłuż się atrybutem kursora %ROWCOUNT.

 

1 : WEGLARZ

2 : BLAZEWICZ

3 : SLOWINSKI

 

3.      Zbuduj kursor, który pozwoli Ci zwiększyć o 20% płacę podstawową pracowników zatrudnionych w poniedziałek. Posłuż się pętlą FOR z kursorem.

 

NAZWISKO         PLACA_POD

--------------- ----------

WEGLARZ               2076

BRZEZINSKI            1152

MORZY                  996

 

4.      Zdefiniuj kursor, który posłuży do dokonania następującej modyfikacji: pracownikom zespołu 'ALGORYTMY' podnieś płacę dodatkową o 100 złotych, pracownikom zespołu 'ADMINISTRACJA' podnieś płacę dodatkową o 150 złotych a w pozostałych zespołach usuń stażystów.

 

ID_PRAC NAZWISKO    ETAT       ID_SZEFA ZATRUDNI PLACA_POD PLACA_DOD ID_ZESP

------- ----------- ---------- -------- -------- --------- --------- -------

    100 WEGLARZ     DYREKTOR            68/01/01      1880     420,5      10

    110 BLAZEWICZ   PROFESOR        100 73/05/01      1350       310      40

    120 SLOWINSKI   PROFESOR        100 77/09/01      1070                30

    130 BRZEZINSKI  PROFESOR        100 68/07/01       960                20

    140 MORZY       PROFESOR        130 75/09/15       830       105      20

    150 KROLIKOWSKI ADIUNKT         130 77/09/01     645,5                20

    160 KOSZLAJDA   ADIUNKT         130 85/03/01       590                20

    170 JEZIERSKI   ASYSTENT        130 92/10/01     439,7      80,5      20

    190 MATYSIAK    ASYSTENT        140 93/09/01       371                20

    180 MAREK       SEKRETARKA      100 85/02/20     560,2                10

    220 KONOPKA     ASYSTENT        110 93/10/01       480                20

    230 HAPKE       ASYSTENT        120 92/09/01       480        90      30

 

5.       Napisz program, który zapyta się użytkownika o żądany etat a następnie wyświetli nazwiska wszystkich pracowników posiadających dany etat. Zastosuj pętlę FOR z kursorem sparametryzowanym.

 

Podaj wartość dla etat: PROFESOR

stare   4:   v_etat VARCHAR2(20) := '&etat';

nowe    4:   v_etat VARCHAR2(20) := 'PROFESOR';

BLAZEWICZ

SLOWINSKI

BRZEZINSKI

MORZY

 

6.      Rozszerz program z zadania 5 o obsługę błędów (np. niepoprawnego wpisania nazwy etatu

 

Podaj wartość dla etat: ASSYTENT

stare   4:   v_etat VARCHAR2(20) := '&etat';

nowe   4:   v_etat VARCHAR2(20) := 'ASSYTENT';

Nie ma nikogo na etacie ASSYTENT

Procedura PL/SQL została zakończona pomyślnie.

 

7.      Napisz kursor, który odczyta informacje o wszystkich profesorach i przyzna im podwyżkę w wysokości 10% sumy płac podstawowych ich podwładnych. Jeśli po podwyżce pensja któregoś z profesorów przekroczyłaby 1000/2000 złotych, program powinien zgłosić błąd (skorzystaj z procedury RAISE APPLICATION ERROR)