我有一个带有PRODUCTS
对象表的数据库,Product
其中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
正如我所怀疑的那样。有没有办法做到这一点?谢谢!