Schema compare. Triggers differ (although equal) when comparing a schema on Oracle 18 against Oracle 10.2

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. :frowning:

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;
/