Poziom zaawansowany

Zadanie 8 (PL/SQL)

Korzystając z tabel Pracownicy oraz Działy (stworzone w Zadaniu 1 poziomu Zaawansowanego) napisz kursor, który pobierze z tabel imię, nazwisko oraz płacę podstawową każdego pracownika, a następnie wyświetli je w formie: Ania Kowalska zarabia 2000.

  1. a) zmodyfikuj kod tak, by pracownicy byli wyświetlani w kolejności alfabetycznej wg nazwiska.

Schemat: HR, Tabele: Pracownicy, Działy, Kolumny: imie, nazwisko, placa_podstawowa.

 

 

 

 

[spoiler title=’Rozwiązanie’ style=’default’ collapse_link=’true’]

set serveroutput on;

— deklaracja zmiennych

declare

cv_imie pracownicy.imie%TYPE;

cv_nazwisko pracownicy.nazwisko%type;

cv_placa DZIALY.PLACA_PODSTAWOWA%type;

— deklaracja kursora

cursor crs_prac is

select p.imie, p.nazwisko, d.PLACA_PODSTAWOWA

from pracownicy p inner join dzialy d

on p.id_dzialu = d.id_dzialu;

— otwarcie kursora

begin

open crs_prac;

— pobieranie wierszy z kursora

loop

fetch crs_prac

into cv_imie, cv_nazwisko, cv_placa;

 

exit when crs_prac%notfound;

 

DBMS_OUTPUT.PUT_LINE(cv_imie ||’ ’ || cv_nazwisko || ’ zarabia ’ || cv_placa);

end loop;

 

— zamkniecie kursora

close crs_prac;

end;

/

  1. a) deklarację kursora należy zmienić dopisując klauzulę order by:

— deklaracja kursora

cursor crs_prac is

select p.imie, p.nazwisko, d.PLACA_PODSTAWOWA

from pracownicy p inner join dzialy d

on p.id_dzialu = d.id_dzialu

order by p.nazwisko;

[/spoiler]

Alexandretta

Kobieta gracz. Po godzinach pracy, z zapałem i piekielnymi ognikami w oczach biega po lochach i tłucze bogu ducha winne zombie czy inne szkielety. Miłośniczka wszelkiej maści cRPG. Notoryczne problemy z wyborem klasy i rasy, bo wszystko fajne... W chwilach zwątpienia zatraca się przy dźwiękach mieczy, roztrzaskiwanych tarcz i okrzyków bojowych, słuchając wiking metalu z zimnej, niegościnnej, odległej Skandynawii. Czasem zdarzy jej się pograć w jakąś strategię bądź nawet w FPP, ale tylko na easy, żeby nie psuć sobie niepotrzebnie nerwów.

Related Articles

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Back to top button