Note the difference:
CREATE OR REPLACE TRIGGER TR6
---
vs.
ORA-04098: trigger 'Username.TR' is invalid
--
It seems that there's yet another trigger on that table which is invalid. Either fix it, or drop it.
Check triggers by running
select table_name, trigger_name, trigger_type from user_triggers order by 1, 2;
[Example]
It is based on Scott's EMP table. Trigger intentionally uses :old.empnox
, a column which doesn't exist. It leads to error you got:
SQL> create table prac14 as select empno, ename, sal, deptno
2 from emp where 1 = 2;
Table created.
SQL>
SQL> create or replace trigger tr6
2 before update on emp
3 for each row
4 begin
5 insert into prac14 (empno,ename,sal,deptno)
6 values(:old.empnox,:old.ename,:old.sal,:old.deptno);
7 end;
8 /
Warning: Trigger created with compilation errors.
SQL>
SQL> update emp set sal = 3000 where deptno = 10;
update emp set sal = 3000 where deptno = 10
*
ERROR at line 1:
ORA-04098: trigger 'SCOTT.TR6' is invalid and failed re-validation
But, if trigger code is fixed, everything runs OK:
SQL> create or replace trigger tr6
2 before update on emp
3 for each row
4 begin
5 insert into prac14 (empno,ename,sal,deptno)
6 values(:old.empno,:old.ename,:old.sal,:old.deptno);
7 end;
8 /
Trigger created.
SQL>
SQL> update emp set sal = 3000 where deptno = 10;
3 rows updated.
SQL>
I suggest you post the same, executed in your database.