插入ORACLE TOAD的位置

时间:2014-11-10 11:40:58

标签: oracle triggers

使用触发器我在SOLDITEMS表中插入记录时尝试更新SOLD列(在STOCK表上),该表与使用STOCK表中现有BARCODE输入的BARCODE相匹配:

CREATE OR REPLACE TRIGGER SCOTT.stock_after_sold AFTER INSERT ON SCOTT.solditems

FOR EACH ROW

DECLARE
b SCOTT.solditems.barcode%type;

BEGIN
update SCOTT.stock set sold = :new.quantity where b = stock.barcode;
DBMS_OUTPUT.PUT_LINE('sold successfully inserted into stock table');

END stock_after_sold;
/

这不会更新列。

1 个答案:

答案 0 :(得分:2)

这一行

b SCOTT.solditems.barcode%type;

只声明属性,但不用任何值初始化它,所以这一行

update SCOTT.stock set sold = :new.quantity where b = stock.barcode;

将stock.barcode与未初始化的值进行比较。

你不需要b,写下这样的更新行:

update SCOTT.stock set sold = :new.quantity where :new.barcode = stock.barcode;