我正在使用Oracle XE,我正在制作自己的自定义触发器。为此,我在 SYSTEM 架构中创建了两个表 INSERTED 和 ORDER_INFO ,两个表都具有相同的列名ORDER_ID,ORDER_DATE。在我的场景中,客户端将放置他/她的订单,订单信息将存储到 INSERTED 表中,然后通过使用此触发器,它将插入另一个表 ORDER_INFO 满足条件后。
这就是我现在所拥有的,
CREATE TRIGGER tri_check
AFTER INSERT ON inserted FOR EACH ROW
DECLARE
BEGIN
IF :new.order_date < (SYSDATE + 2)
THEN
RAISE_APPLICATION_ERROR(-20000, 'You cannot take an order to be delivered less than 2 days from now');
ELSE
INSERT INTO orders_info (order_id, order_date)
VALUES (:new.order_id, :new.order_date);
END IF;
END;
执行上述查询时,我收到此错误
ERROR at line 7: PL/SQL: ORA-00942: table or view does not exist
5. IF :new.order_date < (SYSDATE + 2)
6. THEN
7. RAISE_APPLICATION_ERROR(-20000, 'You cannot take an order to be delivered less than 2 days from now');
8. ELSE
9. INSERT INTO orders_info (order_id, order_date)
需要帮助!!
答案 0 :(得分:0)
这是因为你做了
INSERT INTO orders_info
而不是
INSERT INTO ORDER_INFO