Question: SQL SCHEMA :- -- CREATE TABLE emp_1( -- emp_num int, -- emp_lname varchar2(50), -- emp_fname varchar2(50), -- emp_initial varchar2(50), -- emp_hiredate date, -- emp_jobcode int
SQL SCHEMA :-
-- CREATE TABLE emp_1( -- emp_num int, -- emp_lname varchar2(50), -- emp_fname varchar2(50), -- emp_initial varchar2(50), -- emp_hiredate date, -- emp_jobcode int -- );
-- CREATE TABLE locked( -- user_name varchar2(50), -- user_sysdate date, -- usr_action varchar2(50) -- );
-- CREATE TABLE old_values( -- emp_num int, -- emp_lname varchar2(50), -- emp_fname varchar2(50), -- emp_initial varchar2(50), -- emp_hiredate date, -- emp_jobcode int -- );
-----------------------------------------MY TRIGGER --------------------------------------------------
CREATE OR REPLACE TRIGGER emp_1_trg AFTER INSERT OR UPDATE OR DELETE ON emp_1 FOR EACH ROW DECLARE v_user_name VARCHAR2(50); v_sysdate DATE; v_action VARCHAR2(50); BEGIN v_user_name := user; v_sysdate := sysdate; v_action := case when inserting then 'INSERT' when updating then 'UPDATE' when deleting then 'DELETE' end; INSERT INTO locked (user_name, user_sysdate, usr_action) VALUES (v_user_name, v_sysdate, v_action);
IF UPDATING OR DELETING THEN INSERT INTO old_values (emp_num, emp_lname, emp_fname, emp_initial, emp_hiredate, emp_jobcode) VALUES(:old.emp_num, :old.emp_lname, :old.emp_fname, :old.emp_initial, :old.emp_hiredate, :old.emp_jobcode); END IF; END; /
----------------------------------------------------------------------------------------------------------------------------------
ERROR :-
ORA-04098: trigger 'SQL_QLRDZMMOTYBAYOWSTJVKINICK.DML_TRIGGER' is invalid and failed re-validation
-----------------------------------------------------------------------------------------------------------------------------------
QUESTION :-
Given a table create a trigger that such that any DML operation performed will lead to storing of username,sysdate and ANY DML action performed, to be stored in a table called locked with attributes(user_name,user_sysdate,usr_action) and also old values should be stored in a separate table.
CAN YOU IDENTIFY THE ERROR IN THE TRIGGER AND PROVIDE WITH A SOLUTION
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
