taki probolem przy kompilacji trigera mi wyskakuje ...
czy tutaj tylko zastosowanie kursora moze pomoc ?
CREATE OR REPLACE TRIGGER AKTUALIZUJ_STAN_MAGAZYNU
AFTER INSERT OR DELETE ON POZYCJA
DECLARE
magazyn_szt INTEGER;
kupiono_szt INTEGER;
sztuk_po_aktualizacji INTEGER;
BEGIN
IF INSERTING THEN
SELECT LICZBA_EGZEMPLARZY INTO magazyn_szt FROM KSIAZKA WHERE POZYCJA.ID_POZYCJI = KSIAZKA.ID_POZYCJI;
SELECT ILOSC_SZTUK INTO kupiono_szt FROM POZYCJA WHERE POZYCJA.ID_POZYCJI = KSIAZKA.ID_POZYCJI;
sztuk_po_aktualizacji:=magazyn_szt - kupiono_szt;
UPDATE KSIAZKA set LICZBA_EGZEMPLARZY=sztuk_po_aktualizacji;
END IF;
IF DELETING THEN
SELECT LICZBA_EGZEMPLARZY INTO magazyn_szt FROM KSIAZKA WHERE POZYCJA.ID_POZYCJI = KSIAZKA.ID_POZYCJI;
SELECT ILOSC_SZTUK INTO kupiono_szt FROM POZYCJA WHERE POZYCJA.ID_POZYCJI = KSIAZKA.ID_POZYCJI;
sztuk_po_aktualizacji:=magazyn_szt + kupiono_szt;
UPDATE KSIAZKA set LICZBA_EGZEMPLARZY=sztuk_po_aktualizacji;
END IF;
END;
/
<image>ziemniaktda.republika.pl/error.JPG </image>