2013-02-25 120 views
1

这是我的SQL代码:Oracle错误而创建触发器

CREATE OR REPLACE TRIGGER Promjenaplacanja 
BEFORE UPDATE 
ON Placanje 
FOR EACH ROW 
DECLARE 
v_PlacanjeID NUMBER(10,0); 
v_Starinacin NVARCHAR2(50); 
v_Novinacin NVARCHAR2(50); 

BEGIN 

BEGIN 
    SELECT :OLD.PlacanjeID , 
     :OLD.Nacin_Placanja 

    INTO v_PlacanjeID, 
     v_Starinacin 
    FROM DUAL ; 
    SELECT :NEW.Nacin_Placanja 

    INTO v_Novinacin 
    FROM DUAL ; 
    INSERT INTO Auditplacanja 
    (PlacanjeID, Starinacin, Novinacin, Datum) 
    VALUES (v_PlacanjeID, v_Starinacin, v_Novinacin, SYSDATE); 
END; 
END; 

但我得到这两个错误:

错误(16,7):PL/SQL:SQL语句忽略 错误( 16,19):PL/SQL:ORA-00942:表或视图不存在

我不明白,任何人都可以帮忙吗? :\ 谢谢。

+6

发布问题中的代码。请 – ppeterka 2013-02-25 13:14:30

+0

你走了。 - – Drazen 2013-02-25 13:28:39

+0

不要从双值中选择,直接将旧值和新值插入表中... – MiGro 2013-02-25 13:25:04

回答

3

表或视图不存在。你的触发点在2个地方的表:

1)触发的创作:placanje

2)insert语句:auditplacanja(也许auditplacanje)?

是否存在这两个表(在运行代码的模式中)?

+0

Auditplacanje不存在。所以我必须先创建表格? (这是auditplacanje,我的不好) – Drazen 2013-02-25 13:34:21

+0

首先创建表格,然后才能在其他代码中引用它。 – Rene 2013-02-25 13:48:33