【发布时间】:2016-12-01 15:37:51
【问题描述】:
我有一个包含 Product 对象表 PRODUCTS 的数据库,其中 PRIMARY KEY 是 EAN 字段。每次更新一行时,我都想调用修改后的新对象Product 的成员函数。我做了这个触发器:
CREATE OR REPLACE TRIGGER SHOW_PROFIT_PERCENTAGE
AFTER UPDATE ON PRODUCTS
FOR EACH ROW
DECLARE
P Product;
BEGIN
SELECT VALUE(PS) INTO P
FROM PRODUCTS PS
WHERE EAN = :NEW.EAN;
DBMS_OUTPUT.PUT_LINE('Profit percentage: ' || P.getProfit());
END;
但是当我更新PRODUCTS 时,它给了我这个错误:
table PRODUCTS is mutating, trigger/function may not see it
正如我所怀疑的那样。有没有办法做到这一点?谢谢!
【问题讨论】:
标签: database oracle object triggers mutating-table