【发布时间】:2014-04-21 18:22:26
【问题描述】:
每当Order_line 表中描述来自Order_call 表的类型2 订单时,我需要创建一个触发器来更新Product 表中的数量。
我尝试了以下触发器,但我不断收到错误:
CREATE OR REPLACE TRIGGER updqty AFTER INSERT OR UPDATE ON ORDER_LINE FOR EACH ROW
DECLARE
ortype NUMBER(1);
BEGIN
SELECT @ortype=type FROM ORDER_CALL WHERE orderID=NEW.orderID;
IF (ortype=2) THEN
UPDATE PRODUCT SET qty = qty - NEW.qty WHERE part_no=NEW.part_no;
END IF;
END;
我有 Products 表,其中包含每个可用产品的数量,Order_call 表注册 orderID 及其类型(类型 2 表示它是实际销售)和 @ 987654326@ 表,其中详细说明了实际订单。它在行上存储 orderID、part_no 和 已售数量。因此,对于Order_Call 表中类型 2 的每个 orderID,我需要获取每个已售产品的数量(来自 Order_Line)并从相应 部分的数量中减去_没有在Product表中。
我收到以下编译错误:
4/2 PL/SQL: SQL Statement ignored
4/19 PL/SQL: ORA-00936: missing expression
我没有太多 SQL 经验。 感谢您的帮助。
【问题讨论】:
-
@ 用于 SQL-Server T-SQL。我建议你阅读一些 Oracle 文档。