你能告诉我在这里遇到错误的绑定错误吗?
代码是管理股票。我必须确定库存何时达到其最小现有数量,然后重新订购该产品。
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;
/
答案 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;
/