Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- ZAD 1
- DECLARE
- CURSOR C_PRAC
- IS SELECT NAZWISKO, ZATRUDNIONY FROM PRACOWNICY WHERE ETAT = 'ASYSTENT';
- V_NAZWISKO PRACOWNICY.NAZWISKO%TYPE;
- V_DATA PRACOWNICY.ZATRUDNIONY%TYPE;
- BEGIN
- OPEN C_PRAC;
- LOOP
- FETCH C_PRAC INTO V_NAZWISKO, V_DATA;
- EXIT WHEN C_PRAC%NOTFOUND;
- DBMS_OUTPUT.PUT_LINE(V_NAZWISKO || ' pracuje od ' || V_DATA);
- END LOOP;
- CLOSE C_PRAC;
- END;
- /
- -- ZAD 2
- DECLARE
- CURSOR C_PRAC
- IS SELECT NAZWISKO FROM PRACOWNICY ORDER BY PLACA_POD DESC;
- V_NAZWISKO PRACOWNICY.NAZWISKO%TYPE;
- BEGIN
- OPEN C_PRAC;
- LOOP
- FETCH C_PRAC INTO V_NAZWISKO;
- IF (C_PRAC%ROWCOUNT = 4) THEN
- EXIT;
- END IF;
- DBMS_OUTPUT.PUT_LINE(C_PRAC%ROWCOUNT || ' : ' || V_NAZWISKO);
- END LOOP;
- CLOSE C_PRAC;
- END;
- /
- -- ZAD 3
- DECLARE
- CURSOR C_PRAC IS SELECT * FROM PRACOWNICY
- FOR UPDATE;
- BEGIN
- FOR C_REKORD IN C_PRAC LOOP
- IF ( TO_CHAR(C_REKORD.ZATRUDNIONY, 'DAY') = 'PONIEDZIAŁEK' ) THEN
- UPDATE PRACOWNICY SET PLACA_POD = PLACA_POD + PLACA_POD * 0.2
- WHERE CURRENT OF C_PRAC;
- END IF;
- END LOOP;
- END;
- /
- -- ZAD 4
- DECLARE
- CURSOR C_PRAC IS SELECT * FROM PRACOWNICY JOIN ZESPOLY USING(ID_ZESP)
- FOR UPDATE OF PLACA_POD;
- BEGIN
- FOR C_REKORD IN C_PRAC LOOP
- IF (C_REKORD.NAZWA = 'ALGORYTMY') THEN
- UPDATE PRACOWNICY SET PLACA_DOD = PLACA_DOD + 100 WHERE CURRENT OF C_PRAC;
- END IF;
- IF(C_REKORD.NAZWA = 'ADMINISTRACJA') THEN
- UPDATE PRACOWNICY SET PLACA_DOD = PLACA_DOD + 150 WHERE CURRENT OF C_PRAC;
- END IF;
- END LOOP;
- END;
- /
- -- ZAD 5
- DECLARE
- CURSOR C_PRAC(P_ETAT VARCHAR) IS SELECT NAZWISKO FROM PRACOWNICY WHERE ETAT = P_ETAT;
- V_ETAT PRACOWNICY.ETAT%TYPE;
- V_NAZWISKO PRACOWNICY.NAZWISKO%TYPE;
- BEGIN
- V_ETAT := '&ETAT';
- OPEN C_PRAC(V_ETAT);
- LOOP
- FETCH C_PRAC INTO V_NAZWISKO;
- EXIT WHEN C_PRAC%NOTFOUND;
- DBMS_OUTPUT.PUT_LINE(V_NAZWISKO);
- END LOOP;
- CLOSE C_PRAC;
- END;
- /
- -- ZAD 6
- DECLARE
- CURSOR C_PRAC IS SELECT ETAT, ID_PRAC, NAZWISKO, PLACA_POD + NVL(PLACA_DOD, 0) AS PENSJA FROM PRACOWNICY;
- CURSOR C_ETAT IS SELECT NAZWA FROM ETATY;
- BEGIN
- FOR C_REKORD IN C_ETAT LOOP
- DBMS_OUTPUT.PUT_LINE('ETAT: ' || C_REKORD.NAZWA);
- FOR C_REC2 IN C_PRAC LOOP
- IF (C_REC2.ETAT = C_REKORD.NAZWA) THEN
- DBMS_OUTPUT.PUT_LINE(C_PRAC%ROWCOUNT || ' ' || C_REC2.NAZWISKO || ', pensja: ' || C_REC2.PENSJA);
- END IF;
- END LOOP;
- END LOOP;
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement