Esempi sui trigger
This commit is contained in:
11
trigger/TRIGGER_1.sql
Normal file
11
trigger/TRIGGER_1.sql
Normal 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
20
trigger/TRIGGER_2.sql
Normal 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
16
trigger/TRIGGER_3.sql
Normal 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;
|
||||||
Reference in New Issue
Block a user