bd2!1b id14

Bazy Danych 2 – Laboratorium
Laboratorium nr.2

Zad 2.1

-----zad 1

CREATE OR REPLACE PROCEDURE adds(x VARCHAR2, y NUMBER, z NUMBER)

IS

v stanowiska.id_st%TYPE;

BEGIN

SELECT Max(id_st) INTO v FROM stanowiska;

v:=v+1;

INSERT INTO stanowiska(id_st, Nazwa_st, Min_placa) VALUES(v, x, y);

END;

/

EXECUTE adds('Konstruktor',1100,1400);

SELECT * FROM stanowiska;

Wyniki:

Zad 2.2

-----zad 2

CREATE OR REPLACE PROCEDURE addPerson(imie VARCHAR2, nazwisko VARCHAR2, dateOfBirth VARCHAR2, i VARCHAR2)

IS

numer osoby.id_os%TYPE;

BEGIN

SELECT Max(id_os) INTO numer FROM osoby;

numer:=numer+1;

INSERT INTO Osoby(id_os,Imie,Nazwisko,Data_ur,plec) VALUES(numer, imie, nazwisko, to_Date(dateOfBirth,'YYYY-MM-DD'),i );

END;

/

EXECUTE addPerson('Ferdynand','Kiepski','1962-05-11','M');

SELECT * FROM osoby;

Wynik:

Zad 2.3

CREATE OR REPLACE FUNCTION manager(id NUMBER)

RETURN VARCHAR2

IS

wzor LONG;

numer NUMBER;

CURSOR cursor01 IS SELECT * FROM osoby;

BEGIN

FOR i IN cursor01

LOOP

IF (i.id_os=id AND i.id_kierownika IS NOT NULL ) THEN

numer:=i.id_kierownika;

ELSE

wzor:='Nie ma osoby';

END IF;

END LOOP;

FOR j IN cursor01

LOOP

IF (j.id_os=numer) THEN

wzor:=j.imie||' '||j.nazwisko;

END IF;

END LOOP;

RETURN wzor;

END;

/

SELECT manager(1) FROM dual;

Wynik:

Zad 2.4

-----zad 4

CREATE OR REPLACE FUNCTION p1(id NUMBER)

RETURN NUMBER

IS

numer01 NUMBER;

numer02 NUMBER;

CURSOR cursor01 IS SELECT p.podstawa, p.premia, o.imie, o.nazwisko, p.id_os FROM osoby o, place p;

BEGIN

FOR i IN cursor01

LOOP

IF (i.id_os=id) THEN

numer01:=12*(i.podstawa+i.premia);

IF (numer01>85000) THEN

numer02:=0.4*numer01;

ELSIF (numer01>=50000 AND numer01<46000) THEN

numer02:=0.30*numer01;

ELSIF (numer01>3500 AND numer01<50000) THEN

numer02:=0.19*numer01;

ELSIF (numer01<=3500) THEN

numer02:=0;

END IF;

END IF;

END LOOP;

RETURN numer02;

END;

/

SELECT p1(2) FROM dual;

Wynik:

Zad 2.5

-----zad 5

CREATE OR REPLACE PROCEDURE report(year0 NUMBER)

IS

CURSOR cursor01 IS SELECT e.data_zat, e.id_os, o.imie, o.nazwisko FROM etaty e, osoby o

WHERE e.id_os=o.id_os;

numer NUMBER;

BEGIN

FOR i IN cursor01

LOOP

numer:=to_char(i.data_zat, 'YYYY');

IF (year0=numer) THEN

DBMS_OUTPUT.put_line ('pracownik '||i.id_os||' '||i.imie||' '||i.nazwisko);

END IF;

END LOOP;

END;

/

SET SERVEROUTPUT ON;

EXECUTE report(2006);

Wynik:

Zad 2.6

-----zad 6

CREATE OR REPLACE PROCEDURE position(s VARCHAR2)

IS

CURSOR cursor01 IS SELECT s.nazwa_st, e.data_zat, o.imie, o.nazwisko FROM etaty e, osoby o, stanowiska s

WHERE s.id_st=e.id_st AND e.id_os=o.id_os;

numer NUMBER;

BEGIN

FOR i IN cursor01

LOOP

IF (s=i.nazwa_st AND to_char(i.data_zat, 'YYYY')=2006) THEN

DBMS_OUTPUT.ENABLE;

DBMS_OUTPUT.put_line ('pracownik '||i.imie||' '||i.nazwisko);

END IF;

END LOOP;

END;

/

SET SERVEROUTPUT ON;

EXECUTE position('Informatyk');

Zad 2.7

-----zad 7

CREATE OR REPLACE PROCEDURE report0

IS

CURSOR cursor01 IS SELECT s.nazwa_st, e.data_zat, o.imie, o.nazwisko, o.data_ur, p.data, p.podstawa, p.premia FROM etaty e, osoby o, stanowiska s, place p

WHERE s.id_st=e.id_st AND e.id_os=o.id_os AND p.id_os=o.id_os;

numer NUMBER;

SumYear NUMBER;

SumFull NUMBER;

BEGIN

DBMS_OUTPUT.ENABLE;

FOR i IN cursor01

LOOP

numer:=i.premia+i.podstawa;

SumYear:=numer*12;

DBMS_OUTPUT.ENABLE;

DBMS_OUTPUT.put_line ('Raport plac z dnia: '||SYSDATE);

Dbms_Output.put_line('-----------------------------------------------------------------');

Dbms_Output.put_line('Imie Nazwisko Data Urodzenia');

Dbms_Output.put_line( i.imie||' '||i.nazwisko||' '||i.data_ur );

DBMS_OUTPUT.put_line('Place za rok 2010');

DBMS_OUTPUT.put_line('Data Podstawa Premia Razem');

DBMS_OUTPUT.put_line(i.data||' '||i.podstawa||' '||i.premia||' '||numer);

DBMS_OUTPUT.put_line('Suma za rok 2005:'||SumYear);

DBMS_OUTPUT.put_line('Suma za wszystkie lata: '||SumFull);

Dbms_Output.put_line('-----------------------------------------------------------------');

Dbms_Output.put_line('Imie Nazwisko Data Urodzenia');

Dbms_Output.put_line('');

Dbms_Output.put_line('');

END LOOP;

END;

/

SET SERVEROUTPUT ON;

EXEC report0;

Wynik:

PROCEDURE report0 compiled

anonymous block completed

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Jan Kowalski 52/05/22

Place za rok 2010

Data Podstawa Premia Razem

06/05/10 3600 1200,5 4800,5

Suma za rok 2005:57606

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Jan Kowalski 52/05/22

Place za rok 2010

Data Podstawa Premia Razem

06/05/10 3600 1200,5 4800,5

Suma za rok 2005:57606

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Jan Kowalski 52/05/22

Place za rok 2010

Data Podstawa Premia Razem

06/06/10 3500 1000 4500

Suma za rok 2005:54000

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Jan Kowalski 52/05/22

Place za rok 2010

Data Podstawa Premia Razem

06/06/10 3500 1000 4500

Suma za rok 2005:54000

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Jan Kowalski 52/05/22

Place za rok 2010

Data Podstawa Premia Razem

06/07/10 3500 800 4300

Suma za rok 2005:51600

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Jan Kowalski 52/05/22

Place za rok 2010

Data Podstawa Premia Razem

06/07/10 3500 800 4300

Suma za rok 2005:51600

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Piotr Nowak 62/03/02

Place za rok 2010

Data Podstawa Premia Razem

06/05/10 2500

Suma za rok 2005:

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Piotr Nowak 62/03/02

Place za rok 2010

Data Podstawa Premia Razem

06/06/10 2400 450 2850

Suma za rok 2005:34200

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Piotr Nowak 62/03/02

Place za rok 2010

Data Podstawa Premia Razem

06/07/10 2400 500 2900

Suma za rok 2005:34800

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Anna Kruk 74/02/14

Place za rok 2010

Data Podstawa Premia Razem

06/05/10 2100 500 2600

Suma za rok 2005:31200

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Anna Kruk 74/02/14

Place za rok 2010

Data Podstawa Premia Razem

06/05/10 2100 500 2600

Suma za rok 2005:31200

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Anna Kruk 74/02/14

Place za rok 2010

Data Podstawa Premia Razem

06/05/10 2100 500 2600

Suma za rok 2005:31200

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Anna Kruk 74/02/14

Place za rok 2010

Data Podstawa Premia Razem

06/06/10 2100

Suma za rok 2005:

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Anna Kruk 74/02/14

Place za rok 2010

Data Podstawa Premia Razem

06/06/10 2100

Suma za rok 2005:

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Anna Kruk 74/02/14

Place za rok 2010

Data Podstawa Premia Razem

06/06/10 2100

Suma za rok 2005:

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Anna Kruk 74/02/14

Place za rok 2010

Data Podstawa Premia Razem

06/07/10 2100 300 2400

Suma za rok 2005:28800

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Anna Kruk 74/02/14

Place za rok 2010

Data Podstawa Premia Razem

06/07/10 2100 300 2400

Suma za rok 2005:28800

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Anna Kruk 74/02/14

Place za rok 2010

Data Podstawa Premia Razem

06/07/10 2100 300 2400

Suma za rok 2005:28800

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Maria Nowak 69/11/17

Place za rok 2010

Data Podstawa Premia Razem

06/05/10 1800 300 2100

Suma za rok 2005:25200

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Maria Nowak 69/11/17

Place za rok 2010

Data Podstawa Premia Razem

06/06/10 1800 250 2050

Suma za rok 2005:24600

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Maria Nowak 69/11/17

Place za rok 2010

Data Podstawa Premia Razem

06/07/10 1800

Suma za rok 2005:

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Ewa Wrona 63/12/10

Place za rok 2010

Data Podstawa Premia Razem

06/05/10 2050 150 2200

Suma za rok 2005:26400

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Ewa Wrona 63/12/10

Place za rok 2010

Data Podstawa Premia Razem

06/05/10 2050 150 2200

Suma za rok 2005:26400

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Ewa Wrona 63/12/10

Place za rok 2010

Data Podstawa Premia Razem

06/05/10 2050 150 2200

Suma za rok 2005:26400

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Ewa Wrona 63/12/10

Place za rok 2010

Data Podstawa Premia Razem

06/06/10 2000

Suma za rok 2005:

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Ewa Wrona 63/12/10

Place za rok 2010

Data Podstawa Premia Razem

06/06/10 2000

Suma za rok 2005:

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Ewa Wrona 63/12/10

Place za rok 2010

Data Podstawa Premia Razem

06/06/10 2000

Suma za rok 2005:

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Ewa Wrona 63/12/10

Place za rok 2010

Data Podstawa Premia Razem

06/07/10 2000 350 2350

Suma za rok 2005:28200

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Ewa Wrona 63/12/10

Place za rok 2010

Data Podstawa Premia Razem

06/07/10 2000 350 2350

Suma za rok 2005:28200

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Raport plac z dnia: 12/03/12

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

Imie Nazwisko Data Urodzenia

Ewa Wrona 63/12/10

Place za rok 2010

Data Podstawa Premia Razem

06/07/10 2000 350 2350

Suma za rok 2005:28200

Suma za wszystkie lata:

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

Imie Nazwisko Data Urodzenia

Zad 2.8

-----zad 8

CREATE OR REPLACE PROCEDURE proc(imie0 VARCHAR2, nazwisko0 VARCHAR2)

IS

numer NUMBER;

CURSOR cursor01 IS SELECT * FROM osoby;

BEGIN

FOR i IN cursor01

LOOP

IF (i.imie=imie0 AND i.nazwisko=nazwisko0 AND i.id_kierownika IS NULL ) THEN

numer:=i.id_os;

END IF;

END LOOP;

DBMS_OUTPUT.put_line ('Sklad: '||imie0||' '||nazwisko0);

FOR j IN cursor01

LOOP

IF (j.id_kierownika=numer) THEN

DBMS_OUTPUT.put_line (j.imie||' '||j.nazwisko);

END IF;

END LOOP;

END;

/

SET SERVEROUTPUT ON;

EXEC proc('Jan','Kowalski');

Wyniki:

Zad 2.10

-----zad 10

CREATE OR REPLACE PROCEDURE procedura_zad10(s VARCHAR2)

IS

CURSOR cursor01 IS SELECT o.imie, o.nazwisko, e.data_zat, o.id_os FROM osoby o, etaty e, stanowiska s WHERE e.id_os=o.id_os AND s.id_st=e.id_st AND s.nazwa_st=s ORDER BY o.imie;

x NUMBER;

y NUMBER;

z NUMBER;

BEGIN

FOR i IN cursor01

LOOP

SELECT Sum(podstawa) INTO x FROM place WHERE id_os=i.id_os;

SELECT Sum(premia) INTO y FROM place WHERE id_os=i.id_os;

z:=x+y;

DBMS_OUTPUT.ENABLE;

DBMS_OUTPUT.put_line ('Pracownicy: ');

DBMS_OUTPUT.put_line (i.imie||' '||i.nazwisko);

DBMS_OUTPUT.put_line ('Data zatrudnienia: '||i.data_zat);

DBMS_OUTPUT.put_line ('Zarobki:'||z);

END LOOP;

END;

/

SET SERVEROUTPUT ON;

EXEC procedura_zad10('&s');


Wyszukiwarka

Podobne podstrony:
bd2!1b id14
bd2 06 211b, bd2 06 211b id14, Bazy Danych 2 - Laboratorium
Wykł 1B wstępny i kinematyka
CWICZENIE 1B DSC VHF SAILOR IRM RAT
OBIEG 1B
1 Sprawko, Raport wytrzymałość 1b stal sila
1b Water Hygiene Amended EB
language test 1b
Automatyka 1b MOJE 2
BD2 wyklad 4
02 1b ATV38 smallid 3519 Nieznany
cwiczenie 1b inkscape id 125205 Nieznany
bd2 02
bd2 03 funkcje i procedury
bd2 07 strony WWW
1b, pliki zamawiane, edukacja

więcej podobnych podstron