Kursory i wyjątki 

 

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 15 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)