2016-08-03 25 views
0

ich die Spalte EDI_INVOICE auf False gesetzt werden soll, wenn die DOCUMENT_TYPE ein rebill nur für bestimmte BILL_TO_CODES istSchreiben einen Trigger für AFER-Update auf DB2

Dies ist, wie ich meine Trigger

schrieb
CREATE TRIGGER BT_CU_CASS_REBILLS 
AFTER UPDATE OF DOCUMENT_TYPE ON TLORDER 
REFERENCING OLD AS O NEW AS N 
FOR EACH ROW MODE DB2SQL 
BEGIN ATOMIC 
    IF N.DOCUMENT_TYPE <> O.DOCUMENT_TYPE AND N.DOCUMENT_TYPE = 'REBILL' 
    AND N.BILL_TO_CODE IN (SELECT TRADING_PARTNER FROM EDI_PROFILES WHERE EDI_TYPE = '210' AND EDI_ACTIVE = 'True' AND UPPER(FTP_ADDRESS) LIKE '%CASS%') 
    THEN SET N.EDI_INVOICE = 'True'; 
    END IF; 
    END 

Aber wenn versuchen, die Abfrage auszuführen, um den Trigger zu erstellen, bekomme ich diesen Fehler

SQL0797N The Trigger Lynx.BT_CU_CASS_REBILLS is defined with an unsporrted triggered SQL statement. Line Number = 11. SQLSTATE = 42987 

Vielen Dank im Voraus.

Antwort

3

Wenn der Trigger die Daten in der Zeile ändern soll, für die der Trigger ausgelöst wird, z.

THEN SET N.EDI_INVOICE = 'True'; 

müssen Sie einen BEFORE UPDATE Trigger verwenden.

+0

Vielen Dank, dass Sie Recht hatten und es funktionierte wie ein Charme! – OVO