Hello,
I want to create an update trigger and I need the value of updateted (old) columns. My 
statement looks like ...

CREATE TRIGGER TR_UPD_DBV FOR DBA.T_DBV AFTER UPDATE EXECUTE (
VAR altes_ende DATE; neues_ende DATE; alter_beginn DATE; neuer_beginn DATE;
neuer_beginn_anschluss Date; neues_ende_anschluss Date;

set altes_ende=old.ende;
set alter_beginn=old.beginn;
set neues_ende=new.ende;
set neuer_beginn=new.beginn;
set neues_ende_anschluss=SUBDATE(neuer_beginn,1);
set neuer_beginn_anschluss=ADDDATE(neues_ende,1);

TRY

SELECT seq_dbv_nr.CURRVAL INTO :dbv_nr_alt FROM dba.t_dbv;


IF (alter_beginn<neuer_beginn and altes_ende>neuer_beginn)
  THEN Begin

SELECT seq_dbv_nr.NEXTVAL INTO :dbv_nr_neu FROM dba.t_dbv;

INSERT INTO dba.T_DBV 
(DBV_NR,PERS_NR,AMT_SL,EING_BD_SL,BEAMTSTATUS_SL,SCHUL_NR,STDBASIS_SL,TAETIGKT_SL,BEGINN,ENDE,VERTRAGDATUM,BEGINNTARANSPR)
  VALUES 
(:dbv_nr_neu,:old.PERS_NR,:old.AMT_SL,:old.EING_BD_SL,:old.BEAMTSTATUS_SL,:old.SCHUL_NR,:old.STDBASIS_SL,:old.TAETIGKT_SL,alter_beginn,neues_ende_anschluss,:old.VERTRAGDATUM,:old.BEGINNTARANSPR);
END;

 IF (alter_beginn<neues_ende and altes_ende>neues_ende)
  THEN Begin
SELECT seq_dbv_nr.NEXTVAL INTO :dbv_nr_neu FROM dba.t_dbv;

INSERT INTO dba.T_DBV 
(DBV_NR,PERS_NR,AMT_SL,EING_BD_SL,BEAMTSTATUS_SL,SCHUL_NR,STDBASIS_SL,TAETIGKT_SL,BEGINN,ENDE,VERTRAGDATUM,BEGINNTARANSPR)
  VALUES 
(:dbv_nr_neu,:old.PERS_NR,:old.AMT_SL,:old.EING_BD_SL,:old.BEAMTSTATUS_SL,:old.SCHUL_NR,:old.STDBASIS_SL,:old.TAETIGKT_SL,neuer_beginn_anschluss,altes_ende,:old.VERTRAGDATUM,:old.BEGINNTARANSPR);
END;
...

After confirming the trigger statements I get the message:

General error;-8010 POS(212) Table name must be in from list.

What is wrong?

Ines




_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general

Reply via email to