第一次遇到错误的绑定错误,有人可以帮助我完成它

时间:2012-11-08 19:42:09

标签: oracle plsql triggers

你能告诉我在这里遇到错误的绑定错误吗?

代码是管理股票。我必须确定库存何时达到其最小现有数量,然后重新订购该产品。

 CREATE OR REPLACE TRIGGER REORDER_STOCK
 BEFORE INSERT OR UPDATE OF STK_QOH,STK_MIN ON STOCK
 FOR EACH ROW

 DECLARE
 V_STK_QOH stock.STK_QOH%TYPE;
 V_STK_MIN stock.STK_MIN%TYPE;
 V_STK_REORDER STOCK.STK_REORDER%TYPE;

BEGIN 

 SELECT STK_QOH, STK_MIN, STK_REORDER
INTO V_STK_QOH, V_STK_MIN, V_STK_REORDER
FROM STOCK
WHERE STK_ID= :NEW.STK_ID;

IF:V_STK_QOH<= :STK_MIN THEN
:V_STK_REORDER := 1;
ELSE :V_STK_REORDER :=0;
END IF;

 END;
/

1 个答案:

答案 0 :(得分:2)

这部分:

IF:V_STK_QOH<= :STK_MIN THEN
:V_STK_REORDER := 1;
ELSE :V_STK_REORDER :=0;
END IF;

应该是:

IF V_STK_QOH <= STK_MIN THEN
    V_STK_REORDER := 1;
ELSE 
    V_STK_REORDER :=0;
END IF;

不确定“重新订购该产品”需要什么,但如果您只是想将STOCK.STK_REORDER设置为“1”,如果它达到最小手头数量,那么这就是您所需要的一切:

CREATE OR REPLACE TRIGGER REORDER_STOCK
 BEFORE INSERT OR UPDATE OF STK_QOH,STK_MIN ON STOCK
 FOR EACH ROW

BEGIN

   IF :NEW.STK_QOH <= :NEW.STK_MIN THEN
      :NEW.STK_REORDER := 1;
   ELSE
      :NEW.STK_REORDER := 0;
   END IF;

END;
/