尝试创建在以任何方式更新表之后运行的Oracle触发器。我一直在谷歌搜索这一切早,与此想出了: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是我记录这些事件的新表格
与其他人的代码比较,它看起来应该运行,但我得到“警告:编译错误时创建的触发器”。
假设您使用的是SQL * Plus,当您收到警告(指出您的触发器(或任何其他PL/SQL块)有编译错误)时,可以在SQL提示符处键入“SHOW ERRORS”以获取编译列表错误。这应该有助于确定特定的错误。 – 2011-03-02 18:42:23