【问题标题】:table or view doesn't exist error表或视图不存在错误
【发布时间】:2012-03-30 21:50:25
【问题描述】:

我正在使用 Oracle XE,其中我正在制作自己的自定义触发器。为此,我在 SYSTEM 架构中创建了两个表 INSERTEDORDER_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)

需要帮助!!

【问题讨论】:

  • 作为向你学习的一点,永远不要将你的对象/表/等添加到 SYSTEM 模式中。这就像将手指伸入正在运行的引擎中。

标签: oracle triggers oracle-xe


【解决方案1】:

因为你这样做

INSERT INTO orders_info

而不是

INSERT INTO ORDER_INFO

【讨论】:

    猜你喜欢
    • 2015-05-30
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 2013-04-14
    • 2015-09-16
    • 2019-09-29
    • 1970-01-01
    相关资源
    最近更新 更多