2013-02-25 133 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