When comparing two schemas (one on an ORacle 18 server, the other on a 10.2 server), all triggers are listed as different.
In the Differs By
column, validity
is listed for all of them.
I have checked which SQL statements are executed.
On the 18 server it is this:
Select object_name, object_id, status, editionable
from sys.USER_OBJECTS
where 1=1
and object_type = 'TRIGGER'
order by 1;
This lists VALID
for all triggers.
On the 10 server it is this:
Select object_name, object_id, status, null as editionable
from sys.USER_OBJECTS
where 1=1
and status = 'INVALID'
and object_type = 'TRIGGER'
order by 1;
This does not return any rows because no Trigger is INVALID
.
Is there any way around this?
Re: Validity - unfortunately, that's a bug and I see no workaround. 
I'll have it fixed for Monday's beta.
Re: Columns: I see no bug here. Are you sure you have no diff? If you are sure, can you send me one of your triggers? (or modify mine below so that it reproduces the problem)
CREATE TABLE AA_EMP1
(
EMPNO NUMBER(4),
ENAME VARCHAR2(500 BYTE),
JOB VARCHAR2(500 BYTE),
MGR NUMBER(4),
HIREDATE DATE NOT NULL,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER,
DDDDDD INTEGER
);
CREATE OR REPLACE TRIGGER AA_EMP1_INS
BEFORE DELETE OR INSERT OR UPDATE
ON AA_EMP1
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
declare
datacheck EXCEPTION;
BEGIN
:new.hiredate := sysdate;
:new.SAL := :old.sal + 1;
goto begin_bcd_001;
:new.hiredate := sysdate;
<<begin_bcd_001>>
if updating then
:new.hiredate := sysdate;
end if;
<<end_bcd_001 >>
:new.hiredate := sysdate;
:new.hiredate := sysdate;
end;
/