【发布时间】:2012-03-30 20:15:29
【问题描述】:
我对触发器很陌生,现在这就是我正在尝试的。我有两个表 INSERTED 和 ORDER_INFO,它们都有相同的列名 ORDER_ID、ORDER_DATE。我有一个场景,客户将下订单,然后订单信息将存储到 INSERTED 表中,然后通过使用此触发器,它将插入到另一个表中 ORDER_INFO满足条件后,已经写好了。
create trigger tri_check
AFTER INSERT ON inserted FOR EACH ROW
DECLARE
v_date DATE;
BEGIN
SELECT order_date INTO v_date FROM inserted;
if (v_date)< (sysdate + 2) then
raiserror('You cannot take an order to be delivered less than 2 days from now',16, 1);
else
INSERT INTO orders_info
( order_id,order_date)
VALUES
(:new.order_id,v_date);
end if;
end;
但是,当我执行上述触发器时,我会收到此错误。
ERROR at line 8: PL/SQL: SQL Statement ignored
6. SELECT order_date INTO v_date FROM inserted;
7. if (v_date)< (sysdate + 2) then
8. raiserror('You cannot take an order to be delivered less than 2 days from now',16, 1);
9. else
10. INSERT INTO orders_info
编辑
现在,我在 SYSTEM 用户中创建了相同的结构表,并且得到了相同的错误。 Table or View does not exist
需要帮助!!提前致谢!!
【问题讨论】: