PLS-00103: 遇到符号“;”当期望出现以下情况之一时:如果
PLS-00103: Encountered the symbol ";" when expecting one of the following: if
我在这里遇到了一些麻烦..我想我在这里没有犯任何错误..但是我的 PL/SQL 告诉我这个错误..
PLS-00103: 遇到符号“;”当期待 following:if
之一时
下面是我的代码,请帮我解决这个问题:)
CREATE OR REPLACE TRIGGER trg_tb_goods
AFTER INSERT OR UPDATE OR DELETE
ON tb_sales_details
FOR EACH ROW
DECLARE
v_gq NUMBER;
BEGIN
IF INSERTING THEN
SELECT quantity
INTO v_gq
FROM tb_goods
WHERE goods_id = :NEW.goods_id;
UPDATE tb_goods
SET quantity = v_gq - :NEW.quantity
WHERE goods_id = :NEW.goods_id;
END IF;
IF UPDATING THEN
SELECT quantity
INTO v_gq
FROM tb_goods
WHERE goods_id = :OLD.goods_id;
UPDATE tb_goods
SET quantity = v_gq + :OLD.quantity
WHERE goods_id = :OLD.goods_id;
SELECT quantity
INTO v_gq
FROM tb_goods
WHERE goods_id = :NEW.goods_id;
UPDATE tb_goods
SET quantity = v_gq - :NEW.quantity
WHERE goods_id = :NEW.goods_id;
END IF;
IF DELETING THEN
SELECT quantity
INTO v_gq
FROM tb_goods
WHERE goods_id = :OLD.goods_id;
UPDATE tb_goods
SET quantity = v_gq + :OLD.quantity
WHERE goods_id = :OLD.goods_id;
ENDIF;
END;
/
谢谢..
不是ENDIF;
而是END IF;
(在该代码的最后)。
我在这里遇到了一些麻烦..我想我在这里没有犯任何错误..但是我的 PL/SQL 告诉我这个错误..
PLS-00103: 遇到符号“;”当期待 following:if
之一时下面是我的代码,请帮我解决这个问题:)
CREATE OR REPLACE TRIGGER trg_tb_goods
AFTER INSERT OR UPDATE OR DELETE
ON tb_sales_details
FOR EACH ROW
DECLARE
v_gq NUMBER;
BEGIN
IF INSERTING THEN
SELECT quantity
INTO v_gq
FROM tb_goods
WHERE goods_id = :NEW.goods_id;
UPDATE tb_goods
SET quantity = v_gq - :NEW.quantity
WHERE goods_id = :NEW.goods_id;
END IF;
IF UPDATING THEN
SELECT quantity
INTO v_gq
FROM tb_goods
WHERE goods_id = :OLD.goods_id;
UPDATE tb_goods
SET quantity = v_gq + :OLD.quantity
WHERE goods_id = :OLD.goods_id;
SELECT quantity
INTO v_gq
FROM tb_goods
WHERE goods_id = :NEW.goods_id;
UPDATE tb_goods
SET quantity = v_gq - :NEW.quantity
WHERE goods_id = :NEW.goods_id;
END IF;
IF DELETING THEN
SELECT quantity
INTO v_gq
FROM tb_goods
WHERE goods_id = :OLD.goods_id;
UPDATE tb_goods
SET quantity = v_gq + :OLD.quantity
WHERE goods_id = :OLD.goods_id;
ENDIF;
END;
/
谢谢..
不是ENDIF;
而是END IF;
(在该代码的最后)。