(c) Instytut Informatyki Politechniki Poznańskiej
‹#›
(c) Instytut Informatyki Politechniki Poznańskiej
10
Przykład funkcji
CREATE OR REPLACE FUNCTION podatek (p_id_prac IN NUMBER) RETURN NUMBER IS
  CURSOR c_pracownik IS  SELECT * FROM pracownicy  WHERE id_prac = p_id_prac;
  v_pracownik pracownicy%ROWTYPE;
  v_roczne_zarobki NUMBER;
  v_podatek NUMBER;
BEGIN
  OPEN c_pracownik;
  FETCH c_pracownik INTO v_pracownik;
  CLOSE c_pracownik;
  v_roczne_zarobki := 12 * v_pracownik.placa_pod + NVL(v_pracownik.placa_dod, 0);
  IF (v_roczne_zarobki > 5000) THEN v_podatek := 0.40 * v_roczne_zarobki;
  ELSIF (v_roczne_zarobki > 3000) THEN v_podatek := 0.30 * v_roczne_zarobki;
  ELSE v_podatek := 0.19 * v_roczne_zarobki;
  END IF;
  RETURN v_podatek;
END podatek;