Esempi sui trigger

This commit is contained in:
Fabio Scotto di Santolo
2019-09-25 23:04:24 +02:00
parent a4fbba3f17
commit 810a9c6987
3 changed files with 47 additions and 0 deletions

11
trigger/TRIGGER_1.sql Normal file
View File

@@ -0,0 +1,11 @@
--Esempio Creazione Trigger BEFORE
CREATE OR REPLACE TRIGGER Tr_Sconti
BEFORE INSERT ON SCONTI
FOR EACH ROW
BEGIN
:NEW.ID := ID_SCONTI_SEQ.NEXTVAL;
:NEW.CREAZIONE := SYSDATE;
:NEW.VALORE := 5;
:NEW.ANNO := EXTRACT(YEAR FROM SYSDATE);
:NEW.SCADENZA := SYSDATE + 30;
END;

20
trigger/TRIGGER_2.sql Normal file
View File

@@ -0,0 +1,20 @@
--Esempio Creazione Trigger AFTER
CREATE OR REPLACE TRIGGER Tr_Coupons_Log
AFTER UPDATE OR DELETE ON COUPONS
FOR EACH ROW
DECLARE
v_TipoModifica VARCHAR2(10);
BEGIN
v_TipoModifica := CASE
WHEN UPDATING THEN 'UPDATE'
WHEN DELETING THEN 'DELETE'
END;
IF (v_TipoModifica = 'UPDATE') THEN
INSERT INTO LOG_COUPON(DATA,CODFID,QTA,TIPO)
VALUES(SYSDATE,:OLD.CODFID,:NEW.QTA,v_TipoModifica);
ELSE
INSERT INTO LOG_COUPON(DATA,CODFID,QTA,TIPO)
VALUES(SYSDATE,:OLD.CODFID,-1,v_TipoModifica);
END IF;
END;

16
trigger/TRIGGER_3.sql Normal file
View File

@@ -0,0 +1,16 @@
--ESEMPIO DI TRIGGER INSTEAD OF
CREATE OR REPLACE TRIGGER Tr_Modifica_Vista
INSTEAD OF UPDATE ON VW_CLIENTI_TMP
FOR EACH ROW
BEGIN
UPDATE CARDS_TEMP
SET ULTIMASPESA = SYSDATE,
BOLLINI = :NEW.BOLLINI
WHERE CODFIDELITY = :OLD.CODFIDELITY;
UPDATE CLIENTI
SET STATO = 'Attivo'
WHERE CODFIDELITY = :NEW.CODFIDELITY;
END;