BazyÚnych lab 2ó


Zad1

CREATE OR REPLACE PROCEDURE zad1(

nazwa stanowiska.Nazwa_st%TYPE,

mini stanowiska.Min_placa%TYPE

)

AS

BEGIN

 INSERT INTO Stanowiska VALUES (seq_Stanowiska.NEXTVAL,nazwa,mini);

END ;

/

EXEC zad1('pracownik5',809);

 

Zad2

CREATE OR REPLACE PROCEDURE zad2(

im osoby.imie%TYPE,

naz osoby.nazwisko%TYPE,

dat osoby.data_ur%TYPE,

p osoby.plec%TYPE

)

AS

BEGIN

 INSERT INTO Osoby VALUES (seq_osoby.NEXTVAL,im,naz,dat,p,null);

END ;

/

EXEC zad2('Pawele','Costamr',to_date('01-01-01','DD-MM-YY'),'M');

 

Zad3

CREATE OR REPLACE FUNCTION zad(s NUMBER)

RETURN VARCHAR2

IS

x LONG;

y NUMBER;

CURSOR k1 IS SELECT * FROM osoby;

BEGIN

FOR i IN k1

LOOP

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

y:=i.id_kierownika;

ELSE

x:='nie ma';

END IF;

END LOOP;

FOR w IN k1

LOOP

IF (w.id_os=y) THEN

x:=w.imie||' '||w.nazwisko;

END IF;

END LOOP;

RETURN x;

END;

/

SELECT zad(123) FROM dual;

 

Zad4

CREATE OR REPLACE FUNCTION zad4(s NUMBER)

RETURN NUMBER

IS

x NUMBER;

y NUMBER;

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

BEGIN

FOR i IN k1

LOOP

IF (i.id_os=s) THEN

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

IF (y>85000) THEN

x:=0.4*y;

ELSIF (y>=50000 AND y<85000) THEN

x:=0.30*y;

ELSIF (y>3500 AND y<50000) THEN

x:=0.19*y;

ELSIF (y<=3500) THEN

x:=0;

END IF;

END IF;

END LOOP;

RETURN x;

END;

/

SELECT zad4(123) FROM dual;

 

Zad5

CREATE OR REPLACE PROCEDURE zad5(s NUMBER)

IS

CURSOR k1 IS SELECT e.data_zat, e.id_os, o.imie, o.nazwisko FROM Etaty e, Osoby o WHERE e.id_os=o.id_os;

x NUMBER;

BEGIN

FOR i IN k1

LOOP

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

IF (s=x) THEN

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

END IF;

END LOOP;

END;

/

EXEC zad5(2009);

 

Zad6

CREATE OR REPLACE PROCEDURE zad6(s VARCHAR2)

IS

CURSOR k1 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;

x NUMBER;

BEGIN

FOR i IN k1

LOOP

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

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

END IF;

END LOOP;

END;

/

EXEC zad6('kierownik');

 

 

 

Zad7

CREATE OR REPLACE PROCEDURE zad7

IS

CURSOR k1 IS SELECT s.nazwa_st,e.data_zat, o.imie, o.nazwisko, o.data_ur, 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;

x NUMBER;

w NUMBER;

BEGIN

wujass 7:27:51

 DBMS_OUTPUT.ENABLE;

FOR i IN k1

LOOP

x:=i.premia+i.podstawa;

DBMS_OUTPUT.put_line ('Raport plac z dnia: '||i.imie||' '||i.nazwisko||' '||i.data_ur||' '||SYSDATE||' '||i.podstawa||' '||i.premia||' '||x);

DBMS_OUTPUT.put_line('suma wszystkich: '||w);

END LOOP;

END;

/

EXEC zad7;



Wyszukiwarka

Podobne podstrony:
spis lab I sem 2010
III WWL DIAGN LAB CHORÓB NEREK i DRÓG MOCZ
Diagnostyka lab wod elektrolit
ZW LAB USTAWY, OCHRONA
LAB PROCEDURY I FUNKCJE
sprzet lab profilografy
sprzet lab mikromanometry
Mechanika Plynow Lab, Sitka Pro Nieznany
Lab 02 2011 2012
PO lab 5 id 364195 Nieznany
lab pkm 4
MSIB Instrukcja do Cw Lab krystalizacja
lab [5] id 258102 Nieznany
lab 8 9 1
lab 3 2 9
IE RS lab 11 solutions

więcej podobnych podstron