2013-03-21 95 views
0

我有這個性感的觸發器,它從字段REFERENT中取值,解析它,在某個視圖中找到一行,並將一些數據填充到需要插入的原始行。然後我重新編寫REFERENT字段並消除額外的數據。ORACLE觸發器上的錯誤

REFERENT字段看起來像這樣:「-XXX-123」,其中123是我在視圖中搜索數據的關鍵。希望它是有道理的。

CREATE OR REPLACE TRIGGER TRI_UPDATE 
BEFORE INSERT 
ON TBLASCENTOUTPUT_X 
REFERENCING NEW AS NEW OLD AS OLD 
FOR EACH ROW 
WHEN (
new.STEVILKA_NAROCILA is NULL 
    ) 
DECLARE 
    PARSED_STNAROC VARCHAR(255); 
    PARSED_PRIMARY_VALUE VARCHAR(255); 
BEGIN 

    PARSED_STNAROC := SUBSTR(NEW.REFERENT, INSTR(NEW.REFERENT, '-', -1, 1) + 1); 
    PARSED_PRIMARY_VALUE := SUBSTR(NEW.REFERENT, 1, INSTR(NEW.REFERENT, '-', -1, 1) - 1); 

    select distinct v.STNAROCILA, v.DATNAROCILA, v.SIFKUPCA, v.STPONUDBE, PARSED_PRIMARY_VALUE 
     into :NEW.STEVILKA_NAROCILA, :NEW.DATUM_NAROCILA, :NEW.SIFRA_KUPCA, :NEW.STEVILKA_PONUDBE, :NEW.REFERENT 
     from ARH_NAROC v 
     where v.STNAROCILA = PARSED_STNAROC; 

END; 

我正在上編譯以下錯誤:

On line: 6 
TRIGGER EASY.TRI_UPDATE 
PLS-00201: identifier 'NEW.REFERENT' must be declared 

請幫助。

回答

3

NEW.REFERENT

+0

我不明白:) – no9 2013-03-21 08:31:17

+0

啊其明確的...忘了冒號字符被遺漏:NEW_REFERENT – no9 2013-03-21 08:33:13