Попытка создать триггер Oracle, который запускается после обновления таблицы любым способом. Я гуглил это все утро и придумал это:
CREATE OR REPLACE TRIGGER gb_qty_change
AFTER UPDATE OR INSERT OR DELETE ON F_ITEM_STORE
FOR EACH ROW
DECLARE
v_qty V_AD_ON_HAND%rowtype;
v_isbn TD_ITEM_DESCRIPTION.TD_IDENTIFIER%type;
BEGIN
delete from gb_transaction where gb_tide = :new.ITST_ITEM_TIDE_CODE;
select TD_IDENTIFIER INTO v_isbn from TD_ITEM_DESCRIPTION where TD_TIDE = :new.ITST_ITEM_TIDE_CODE;
select * INTO v_qty from V_AD_ON_HAND where ITST_ITEM_TIDE_CODE = :new.ITST_ITEM_TIDE_CODE;
insert into gb_transaction(gb_tide, gb_isbn, gb_used_on_hand, gb_new_on_hand)
values(:new.ITST_ITEM_TIDE_CODE, v_isbn, v_qty.USED_ON_HAND, v_qty.NEW_ON_HAND);
END;
/
Я пытаюсь сохранить одну запись на TIDE_CODE в новой таблице.
V_AD_ON_HAND - это представление, которое извлекает счет инвентаря.
gb_transaction - моя новая таблица, в которую я записываю эти события
Сравнивая его с кодом других людей, он выглядит так, как будто он должен работать, но я получаю "Предупреждение: триггер создан с ошибками компиляции."