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