Assignment 7
Assignment 7
Title : PL/SQL code block using Trigger Trigger (All Types: Rowlevel and Statement
level
triggers, Before and After Triggers).
1. Write a update, delete trigger on clientmstr table. The System should keep track
of the records
that ARE BEING updated or deleted. The old value of updated or deleted records
should be added
in audit_trade table. (separate implementation using both row and statement
triggers)
ID NAME AMT
---------- ---------- ----------
255 SUJIT 255
258 OMKAR 564
256 SANKENT 545
249 KRUSHANA 979
251 SAMEER 479
TIME
---------------------------------------------------------------------------
ID OLDAMT ACTION
---------- ---------- ----------
26-MAR-24 11.59.08.068000 AM
255 255 UPDATING
1 row updated.
5 rows deleted.
TIME
---------------------------------------------------------------------------
ID OLDAMT ACTION
---------- ---------- ----------
26-MAR-24 11.59.08.068000 AM
255 255 UPDATING
26-MAR-24 12.00.32.487000 PM
256 545 UPDATING
26-MAR-24 12.01.03.276000 PM
255 1000 DELETING
TIME
---------------------------------------------------------------------------
ID OLDAMT ACTION
---------- ---------- ----------
26-MAR-24 12.01.03.276000 PM
258 564 DELETING
26-MAR-24 12.01.03.276000 PM
256 1125 DELETING
26-MAR-24 12.01.03.276000 PM
249 979 DELETING
TIME
---------------------------------------------------------------------------
ID OLDAMT ACTION
---------- ---------- ----------
26-MAR-24 12.01.03.276000 PM
251 479 DELETING
7 rows selected.
—----------------------------------------------------------------------------------
----------------------------------
STATMENT TRIGGER
CREATE OR REPLACE TRIGGER auditTriggerstat
AFTER UPDATE OR DELETE ON clientmstr255
DECLARE
BEGIN
IF UPDATING THEN
INSERT INTO audit255 VALUES ('UPDATING');
ELSE
INSERT INTO audit255 VALUES ('DELETING');
END IF;
END;
/
Trigger created.
5 rows updated.
5 rows deleted.
ACTION
----------
UPDATING
DELETING
SQL>
Table created.
Trigger created.
INSERT INTO EMP255 (e_no, e_name, salary) VALUES (251, 'SAMEER', 32001);
INSERT INTO EMP255 (e_no, e_name, salary) VALUES (251, 'SAMEER', 32001)
*
ERROR at line 1:
ORA-20003: Salary should be greater than 50000
ORA-06512: at "SYSTEM.EMP_SALARY", line 3
ORA-04088: error during execution of trigger 'SYSTEM.EMP_SALARY'
INSERT INTO EMP255 (e_no, e_name, salary) VALUES (255, 'SUJIT', 210005);
1 row created.
1 row updated.
BEGIN
IF (:new.sal_one > 50000 OR :new.sal_two > 50000 OR :new.sal_three > 50000) THEN
INSERT INTO emp_avg_b255 VALUES(:new.e_no,((:new.sal_one + :new.sal_two +
:new.sal_three)/3));
DBMS_OUTPUT.PUT_LINE('Record added to emp_sal and emp_avg successfully');
ELSE
DBMS_OUTPUT.PUT_LINE('Record added to emp_sal successfully');
END IF;
END;
/
Trigger created.