Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --ZAD 1
- CREATE OR REPLACE PROCEDURE PODWYZKA (P_ID_ZESP IN NUMBER, P_PODWYZKA IN NUMBER DEFAULT 15) IS
- BEGIN
- UPDATE PRACOWNICY P SET P.PLACA_POD = P.PLACA_POD + P.PLACA_POD * P_PODWYZKA / 100
- WHERE P.ID_ZESP = P_ID_ZESP;
- END;
- /
- EXECUTE PODWYZKA(10);
- --ZAD 2
- CREATE OR REPLACE PROCEDURE PODWYZKA (P_ID_ZESP IN NUMBER, P_PODWYZKA IN NUMBER DEFAULT 15) IS
- P_ILE_W_ZESPOLE NUMBER;
- BEGIN
- SELECT COUNT(*) INTO P_ILE_W_ZESPOLE FROM PRACOWNICY WHERE ID_ZESP = P_ID_ZESP;
- IF (P_ILE_W_ZESPOLE = 0) THEN RAISE_APPLICATION_ERROR(-20001, 'BRAK ZESPOLU O PODANYM NUMERZE!');
- END IF;
- UPDATE PRACOWNICY P SET P.PLACA_POD = P.PLACA_POD + P.PLACA_POD * P_PODWYZKA / 100
- WHERE P.ID_ZESP = P_ID_ZESP;
- END;
- /
- EXECUTE PODWYZKA(20);
- --ZAD 3
- CREATE OR REPLACE PROCEDURE LICZBA_PRACOWNIKOW (P_NAZWA_ZESP IN VARCHAR, P_LICZBA_PRACOWNIKOW OUT NUMBER) IS
- P_ILE_W_ZESPOLE NUMBER;
- BEGIN
- SELECT COUNT(*) INTO P_ILE_W_ZESPOLE FROM PRACOWNICY P NATURAL JOIN ZESPOLY Z WHERE Z.NAZWA = P_NAZWA_ZESP;
- IF (P_ILE_W_ZESPOLE = 0) THEN RAISE_APPLICATION_ERROR(-20001, 'BRAK ZESPOLU O PODANYM NUMERZE!');
- END IF;
- P_LICZBA_PRACOWNIKOW := P_ILE_W_ZESPOLE;
- END;
- /
- DECLARE
- V_LICZBA_PRACOWNIKOW NUMBER;
- BEGIN
- LICZBA_PRACOWNIKOW('ADMINISTRACJA', V_LICZBA_PRACOWNIKOW);
- DBMS_OUTPUT.PUT_LINE('LICZBA PRACOWNIKOW: ' || V_LICZBA_PRACOWNIKOW);
- END;
- /
- --ZAD 4
- CREATE OR REPLACE PROCEDURE NOWY_PRACOWNIK
- (P_NAZWISKO PRACOWNICY.NAZWISKO%TYPE, P_NAZWA_ZESP ZESPOLY.NAZWA%TYPE, P_NAZWISKO_SZEFA PRACOWNICY.NAZWISKO%TYPE, P_PLACA_POD PRACOWNICY.PLACA_POD%TYPE)
- IS
- P_DATA_ZATRUDNIENIA DATE;
- P_ETAT PRACOWNICY.ETAT%TYPE;
- P_ID_ZESP PRACOWNICY.ID_ZESP%TYPE;
- P_ID_SZEFA PRACOWNICY.ID_SZEFA%TYPE;
- P_ID_PRAC PRACOWNICY.ID_PRAC%TYPE;
- BEGIN
- P_DATA_ZATRUDNIENIA := SYSDATE;
- P_ETAT := 'STAŻYSTA';
- SELECT ID_PRAC INTO P_ID_SZEFA FROM PRACOWNICY WHERE NAZWISKO = P_NAZWISKO_SZEFA;
- SELECT ID_ZESP INTO P_ID_ZESP FROM ZESPOLY WHERE NAZWA = P_NAZWA_ZESP;
- SELECT MAX(ID_PRAC) INTO P_ID_PRAC FROM PRACOWNICY;
- P_ID_PRAC := P_ID_PRAC + 10;
- INSERT INTO PRACOWNICY (ID_PRAC, NAZWISKO, ETAT, ID_SZEFA, ZATRUDNIONY, PLACA_POD, PLACA_DOD, ID_ZESP)
- VALUES (P_ID_PRAC, P_NAZWISKO, P_ETAT, P_ID_SZEFA, P_DATA_ZATRUDNIENIA, P_PLACA_POD, NULL, P_ID_ZESP);
- END;
- /
- EXECUTE NOWY_PRACOWNIK('DYNDALSKI', 'ALGORYTMY', 'BLAZEWICZ', 250);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement