Witam
Mam do zrobienia następujące zadanie :
- Napisz blok PL/SQL, w którym użytkownik zaktualizuje pensję wybranego pracownika w tabeli Emp. Numer pracownika, którego pensja ma być zaktualizowana oraz wartość pensji mają być wprowadzane na bieżąco. Zadabaj o to, aby numer pracownika był numerem istniejącym w tabeli Emp, zaś pensja była większa od 500.
Mam taki kod który już wprowadza zmiany pensji, natomiast nie potrafię sobie poradzić z ograniczeniami odnośnie " Zadbaj o to, aby numer pracownika był numerem istniejącym w tabeli Emp, zaś pensja była większa od 500"
SET SERVEROUTPUT ON
ACCEPT num_prac PROMPT 'Podaj numer pracownika: '
ACCEPT pens_prac PROMPT 'Podaj pensję: '
DECLARE
za_mala_pensja EXCEPTION;
numer NUMBER(4) := &num_prac;
pensja NUMBER(6) := &pens_prac;
CURSOR kursor_osoba IS
SELECT e.Empno, e.Sal FROM Emp e
FOR UPDATE OF e.Sal;
rek_osoby kursor_osoba%ROWTYPE;
BEGIN
OPEN kursor_osoba;
LOOP
FETCH kursor_osoba INTO rek_osoby;
EXIT WHEN kursor_osoba%NOTFOUND;
IF rek_osoby.Empno = numer THEN
UPDATE Emp SET Sal = pensja
WHERE CURRENT OF kursor_osoba;
IF pensja < 500 THEN
RAISE za_mala_pensja;
END IF;
END IF;
END LOOP;
EXCEPTION
WHEN za_mala_pensja THEN DBMS_OUTPUT.Put_line('Pensja musi być powyżej 500 ');
COMMIT;
END;
/
Może ktoś jest w stanie pomóc ?