Toad compare - wrong trigger code

hi

This is issue occurs 'sometimes' and is not reproduceable.

When I do a toad compare I get wrong code on my target database:

My source trigger code is:
CREATE OR REPLACE TRIGGER MINERVA_DAO.act_account_groepen_iio
instead of insert
ON MINERVA_DAO.ACT_ACCOUNT_GROEPEN_TV
for each row
declare
l_agp_u t_act_account_groepen_u := t_act_account_groepen_u();
l_agp_u_fni t_act_account_groepen_ufn := t_act_account_groepen_ufn();
begin
/* Make a text-reference to all columns to force source-change (dependencies in release process)
id nar_id srcsystem_lst wmj_id externalid type_lst naam begindatum einddatum nummer kil_format_lst
created_by created_on changed_by changed_on ssn_id
*/

-- new values to local
l_agp_u.nar_id := :new.nar_id;
l_agp_u.srcsystem_lst := :new.srcsystem_lst;
l_agp_u.wmj_id := :new.wmj_id;
l_agp_u.externalid := :new.externalid;
l_agp_u.type_lst := :new.type_lst;
l_agp_u.naam := :new.naam;
l_agp_u.begindatum := :new.begindatum;
l_agp_u.einddatum := :new.einddatum;
l_agp_u.nummer := :new.nummer;
l_agp_u.kil_format_lst := :new.kil_format_lst;

-- handle null values
l_agp_u_fni.setAllTrue();

act_agp_tapi.ins
( p_agp_u => l_agp_u
, p_agp_u_fni => l_agp_u_fni
);
end;
/

My dest trigger is:

-- Run this script in MINERVA_DAO@MINERVA-T to make it look like MINERVA_DAO@ORCL.

-- Please review the script before using it to make sure it won't cause any unacceptable data loss.

-- MINERVA_DAO@MINERVA-T schema extracted by user MINERVA_ADMIN
-- MINERVA_DAO@ORCL schema extracted by user MINERVA_ADMIN

-- "Set define off" turns off substitution variables.
Set define off;

Prompt Trigger ACT_ACCOUNT_GROEPEN_IIO;
Prompt Trigger ACT_ACCOUNT_GROEPEN_IIO;

-- ACT_ACCOUNT_GROEPEN_IIO (Trigger)

-- Dependencies:
-- ACT_ACCOUNT_GROEPEN_TV (View)
-- ACT_AGP_TAPI (Package)
-- T_ACT_ACCOUNT_GROEPEN_U (Type)
-- T_ACT_ACCOUNT_GROEPEN_UFN (Type)
-- STANDARD (Package)

CREATE OR REPLACE TRIGGER MINERVA_DAO.act_account_groepen_iio
instead of insert
ON MINERVA_DAO.ACT_ACCOUNT_GROEPEN_TV
for each row
declare
l_adl_u t_act_account_details_u := t_act_account_details_u();
l_adl_u_fni t_act_account_details_ufn := t_act_account_details_ufn();
begin
/* Make a text-reference to all columns to force source-change (dependencies in release process)
id act_id afwijkend_adl_id fac_ads_id fac_ads_id_inh off_ads_id off_ads_id_inh fpt_id fpt_id_inh ftr_mst_id
ftr_mst_id_inh tou_wmj_id tou_wmj_id_inh type_lst btw_plichtig_lst btw_plichtig_lst_inh btw_absoluut_lst
btw_absoluut_lst_inh elect_fact_geweigerd_lst elect_fact_geweigerd_lst_inh taal_lst taal_lst_inh domicilieringsnummer
domicilieringsnummer_inh iban_nr iban_nr_inh bic_code bic_code_inh krediet_termijn_ref_lst krediet_termijn_ref_lst_inh
krediet_termijn_dagen krediet_termijn_dagen_inh begin_boekjaar begin_boekjaar_inh einde_boekjaar einde_boekjaar_inh
facturatie_vaste_tekst facturatie_vaste_tekst_inh facturatie_tav facturatie_tav_inh fact_extra_adres_rgl1
fact_extra_adres_rgl1_inh fact_extra_adres_rgl2 fact_extra_adres_rgl2_inh facturatie_email_adres facturatie_email_adres_inh
pro_forma_email_adres pro_forma_email_adres_inh referentie_type_r1_oms referentie_type_r1_oms_inh
referentie_type_r2_oms referentie_type_r2_oms_inh referentie_type_r3_oms referentie_type_r3_oms_inh
referentie_type_po_oms referentie_type_po_oms_inh verzend_kanaal_lst verzend_kanaal_lst_inh iban_nummer_isabel
iban_nummer_isabel_inh iban_nummer_zoomit iban_nummer_zoomit_inh identificatie_nr_verz_ka identificatie_nr_verz_ka_inh
ob10_nummer ob10_nummer_inh ariba_nummer ariba_nummer_inh volgt_fpr_bedrijf_lst volgt_fpr_bedrijf_lst_inh
facturatie_bedrijf_lst facturatie_bedrijf_lst_inh facturatie_methode_lst facturatie_methode_lst_inh
reden_validatie_lst reden_validatie_lst_inh memo_validatie memo_validatie_inh reden_pro_forma_lst
reden_pro_forma_lst_inh memo_pro_forma memo_pro_forma_inh adl_id_btw adl_id_btw_inh created_by created_on
changed_by changed_on ssn_id
*/

-- new values to local
l_adl_u.act_id := :new.act_id;
l_adl_u.afwijkend_adl_id := :new.afwijkend_adl_id;
l_adl_u.fac_ads_id := :new.fac_ads_id;
l_adl_u.fac_ads_id_inh := :new.fac_ads_id_inh;
l_adl_u.off_ads_id := :new.off_ads_id;
l_adl_u.off_ads_id_inh := :new.off_ads_id_inh;
l_adl_u.fpt_id := :new.fpt_id;
l_adl_u.fpt_id_inh := :new.fpt_id_inh;
l_adl_u.ftr_mst_id := :new.ftr_mst_id;
l_adl_u.ftr_mst_id_inh := :new.ftr_mst_id_inh;
l_adl_u.tou_wmj_id := :new.tou_wmj_id;
l_adl_u.tou_wmj_id_inh := :new.tou_wmj_id_inh;
l_adl_u.type_lst := :new.type_lst;
l_adl_u.btw_plichtig_lst := :new.btw_plichtig_lst;
l_adl_u.btw_plichtig_lst_inh := :new.btw_plichtig_lst_inh;
l_adl_u.btw_absoluut_lst := :new.btw_absoluut_lst;
l_adl_u.btw_absoluut_lst_inh := :new.btw_absoluut_lst_inh;
l_adl_u.elect_fact_geweigerd_lst := :new.elect_fact_geweigerd_lst;
l_adl_u.elect_fact_geweigerd_lst_inh := :new.elect_fact_geweigerd_lst_inh;
l_adl_u.taal_lst := :new.taal_lst;
l_adl_u.taal_lst_inh := :new.taal_lst_inh;
l_adl_u.domicilieringsnummer := :new.domicilieringsnummer;
l_adl_u.domicilieringsnummer_inh := :new.domicilieringsnummer_inh;
l_adl_u.iban_nr := :new.iban_nr;
l_adl_u.iban_nr_inh := :new.iban_nr_inh;
l_adl_u.bic_code := :new.bic_code;
l_adl_u.bic_code_inh := :new.bic_code_inh;
l_adl_u.krediet_termijn_ref_lst := :new.krediet_termijn_ref_lst;
l_adl_u.krediet_termijn_ref_lst_inh := :new.krediet_termijn_ref_lst_inh;
l_adl_u.krediet_termijn_dagen := :new.krediet_termijn_dagen;
l_adl_u.krediet_termijn_dagen_inh := :new.krediet_termijn_dagen_inh;
l_adl_u.begin_boekjaar := :new.begin_boekjaar;
l_adl_u.begin_boekjaar_inh := :new.begin_boekjaar_inh;
l_adl_u.einde_boekjaar := :new.einde_boekjaar;
l_adl_u.einde_boekjaar_inh := :new.einde_boekjaar_inh;
l_adl_u.facturatie_vaste_tekst := :new.facturatie_vaste_tekst;
l_adl_u.facturatie_vaste_tekst_inh := :new.facturatie_vaste_tekst_inh;
l_adl_u.facturatie_tav := :new.facturatie_tav;
l_adl_u.facturatie_tav_inh := :new.facturatie_tav_inh;
l_adl_u.fact_extra_adres_rgl1 := :new.fact_extra_adres_rgl1;
l_adl_u.fact_extra_adres_rgl1_inh := :new.fact_extra_adres_rgl1_inh;
l_adl_u.fact_extra_adres_rgl2 := :new.fact_extra_adres_rgl2;
l_adl_u.fact_extra_adres_rgl2_inh := :new.fact_extra_adres_rgl2_inh;
l_adl_u.facturatie_email_adres := :new.facturatie_email_adres;
l_adl_u.facturatie_email_adres_inh := :new.facturatie_email_adres_inh;
l_adl_u.pro_forma_email_adres := :new.pro_forma_email_adres;
l_adl_u.pro_forma_email_adres_inh := :new.pro_forma_email_adres_inh;
l_adl_u.referentie_type_r1_oms := :new.referentie_type_r1_oms;
l_adl_u.referentie_type_r1_oms_inh := :new.referentie_type_r1_oms_inh;
l_adl_u.referentie_type_r2_oms := :new.referentie_type_r2_oms;
l_adl_u.referentie_type_r2_oms_inh := :new.referentie_type_r2_oms_inh;
l_adl_u.referentie_type_r3_oms := :new.referentie_type_r3_oms;
l_adl_u.referentie_type_r3_oms_inh := :new.referentie_type_r3_oms_inh;
l_adl_u.referentie_type_po_oms := :new.referentie_type_po_oms;
l_adl_u.referentie_type_po_oms_inh := :new.referentie_type_po_oms_inh;
l_adl_u.verzend_kanaal_lst := :new.verzend_kanaal_lst;
l_adl_u.verzend_kanaal_lst_inh := :new.verzend_kanaal_lst_inh;
l_adl_u.iban_nummer_isabel := :new.iban_nummer_isabel;
l_adl_u.iban_nummer_isabel_inh := :new.iban_nummer_isabel_inh;
l_adl_u.iban_nummer_zoomit := :new.iban_nummer_zoomit;
l_adl_u.iban_nummer_zoomit_inh := :new.iban_nummer_zoomit_inh;
l_adl_u.identificatie_nr_verz_ka := :new.identificatie_nr_verz_ka;
l_adl_u.identificatie_nr_verz_ka_inh := :new.identificatie_nr_verz_ka_inh;
l_adl_u.ob10_nummer := :new.ob10_nummer;
l_adl_u.ob10_nummer_inh := :new.ob10_nummer_inh;
l_adl_u.ariba_nummer := :new.ariba_nummer;
l_adl_u.ariba_nummer_inh := :new.ariba_nummer_inh;
l_adl_u.volgt_fpr_bedrijf_lst := :new.volgt_fpr_bedrijf_lst;
l_adl_u.volgt_fpr_bedrijf_lst_inh := :new.volgt_fpr_bedrijf_lst_inh;
l_adl_u.facturatie_bedrijf_lst := :new.facturatie_bedrijf_lst;
l_adl_u.facturatie_bedrijf_lst_inh := :new.facturatie_bedrijf_lst_inh;
l_adl_u.facturatie_methode_lst := :new.facturatie_methode_lst;
l_adl_u.facturatie_methode_lst_inh := :new.facturatie_methode_lst_inh;
l_adl_u.reden_validatie_lst := :new.reden_validatie_lst;
l_adl_u.reden_validatie_lst_inh := :new.reden_validatie_lst_inh;
l_adl_u.memo_validatie := :new.memo_validatie;
l_adl_u.memo_validatie_inh := :new.memo_validatie_inh;
l_adl_u.reden_pro_forma_lst := :new.reden_pro_forma_lst;
l_adl_u.reden_pro_forma_lst_inh := :new.reden_pro_forma_lst_inh;
l_adl_u.memo_pro_forma := :new.memo_pro_forma;
l_adl_u.memo_pro_forma_inh := :new.memo_pro_forma_inh;
l_adl_u.adl_id_btw := :new.adl_id_btw;
l_adl_u.adl_id_btw_inh := :new.adl_id_btw_inh;

-- handle null values
l_adl_u_fni.act_id := gen_boolean.toGenboolean( p_boolean => updating('act_id') );
l_adl_u_fni.afwijkend_adl_id := gen_boolean.toGenboolean( p_boolean => updating('afwijkend_adl_id') );
l_adl_u_fni.fac_ads_id := gen_boolean.toGenboolean( p_boolean => updating('fac_ads_id') );
l_adl_u_fni.fac_ads_id_inh := gen_boolean.toGenboolean( p_boolean => updating('fac_ads_id_inh') );
l_adl_u_fni.off_ads_id := gen_boolean.toGenboolean( p_boolean => updating('off_ads_id') );
l_adl_u_fni.off_ads_id_inh := gen_boolean.toGenboolean( p_boolean => updating('off_ads_id_inh') );
l_adl_u_fni.fpt_id := gen_boolean.toGenboolean( p_boolean => updating('fpt_id') );
l_adl_u_fni.fpt_id_inh := gen_boolean.toGenboolean( p_boolean => updating('fpt_id_inh') );
l_adl_u_fni.ftr_mst_id := gen_boolean.toGenboolean( p_boolean => updating('ftr_mst_id') );
l_adl_u_fni.ftr_mst_id_inh := gen_boolean.toGenboolean( p_boolean => updating('ftr_mst_id_inh') );
l_adl_u_fni.tou_wmj_id := gen_boolean.toGenboolean( p_boolean => updating('tou_wmj_id') );
l_adl_u_fni.tou_wmj_id_inh := gen_boolean.toGenboolean( p_boolean => updating('tou_wmj_id_inh') );
l_adl_u_fni.type_lst := gen_boolean.toGenboolean( p_boolean => updating('type_lst') );
l_adl_u_fni.btw_plichtig_lst := gen_boolean.toGenboolean( p_boolean => updating('btw_plichtig_lst') );
l_adl_u_fni.btw_plichtig_lst_inh := gen_boolean.toGenboolean( p_boolean => updating('btw_plichtig_lst_inh') );
l_adl_u_fni.btw_absoluut_lst := gen_boolean.toGenboolean( p_boolean => updating('btw_absoluut_lst') );
l_adl_u_fni.btw_absoluut_lst_inh := gen_boolean.toGenboolean( p_boolean => updating('btw_absoluut_lst_inh') );
l_adl_u_fni.elect_fact_geweigerd_lst := gen_boolean.toGenboolean( p_boolean => updating('elect_fact_geweigerd_lst') );
l_adl_u_fni.elect_fact_geweigerd_lst_inh := gen_boolean.toGenboolean( p_boolean => updating('elect_fact_geweigerd_lst_inh') );
l_adl_u_fni.taal_lst := gen_boolean.toGenboolean( p_boolean => updating('taal_lst') );
l_adl_u_fni.taal_lst_inh := gen_boolean.toGenboolean( p_boolean => updating('taal_lst_inh') );
l_adl_u_fni.domicilieringsnummer := gen_boolean.toGenboolean( p_boolean => updating('domicilieringsnummer') );
l_adl_u_fni.domicilieringsnummer_inh := gen_boolean.toGenboolean( p_boolean => updating('domicilieringsnummer_inh') );
l_adl_u_fni.iban_nr := gen_boolean.toGenboolean( p_boolean => updating('iban_nr') );
l_adl_u_fni.iban_nr_inh := gen_boolean.toGenboolean( p_boolean => updating('iban_nr_inh') );
l_adl_u_fni.bic_code := gen_boolean.toGenboolean( p_boolean => updating('bic_code') );
l_adl_u_fni.bic_code_inh := gen_boolean.toGenboolean( p_boolean => updating('bic_code_inh') );
l_adl_u_fni.krediet_termijn_ref_lst := gen_boolean.toGenboolean( p_boolean => updating('krediet_termijn_ref_lst') );
l_adl_u_fni.krediet_termijn_ref_lst_inh := gen_boolean.toGenboolean( p_boolean => updating('krediet_termijn_ref_lst_inh') );
l_adl_u_fni.krediet_termijn_dagen := gen_boolean.toGenboolean( p_boolean => updating('krediet_termijn_dagen') );
l_adl_u_fni.krediet_termijn_dagen_inh := gen_boolean.toGenboolean( p_boolean => updating('krediet_termijn_dagen_inh') );
l_adl_u_fni.begin_boekjaar := gen_boolean.toGenboolean( p_boolean => updating('begin_boekjaar') );
l_adl_u_fni.begin_boekjaar_inh := gen_boolean.toGenboolean( p_boolean => updating('begin_boekjaar_inh') );
l_adl_u_fni.einde_boekjaar := gen_boolean.toGenboolean( p_boolean => updating('einde_boekjaar') );
l_adl_u_fni.einde_boekjaar_inh := gen_boolean.toGenboolean( p_boolean => updating('einde_boekjaar_inh') );
l_adl_u_fni.facturatie_vaste_tekst := gen_boolean.toGenboolean( p_boolean => updating('facturatie_vaste_tekst') );
l_adl_u_fni.facturatie_vaste_tekst_inh := gen_boolean.toGenboolean( p_boolean => updating('facturatie_vaste_tekst_inh') );
l_adl_u_fni.facturatie_tav := gen_boolean.toGenboolean( p_boolean => updating('facturatie_tav') );
l_adl_u_fni.facturatie_tav_inh := gen_boolean.toGenboolean( p_boolean => updating('facturatie_tav_inh') );
l_adl_u_fni.fact_extra_adres_rgl1 := gen_boolean.toGenboolean( p_boolean => updating('fact_extra_adres_rgl1') );
l_adl_u_fni.fact_extra_adres_rgl1_inh := gen_boolean.toGenboolean( p_boolean => updating('fact_extra_adres_rgl1_inh') );
l_adl_u_fni.fact_extra_adres_rgl2 := gen_boolean.toGenboolean( p_boolean => updating('fact_extra_adres_rgl2') );
l_adl_u_fni.fact_extra_adres_rgl2_inh := gen_boolean.toGenboolean( p_boolean => updating('fact_extra_adres_rgl2_inh') );
l_adl_u_fni.facturatie_email_adres := gen_boolean.toGenboolean( p_boolean => updating('facturatie_email_adres') );
l_adl_u_fni.facturatie_email_adres_inh := gen_boolean.toGenboolean( p_boolean => updating('facturatie_email_adres_inh') );
l_adl_u_fni.pro_forma_email_adres := gen_boolean.toGenboolean( p_boolean => updating('pro_forma_email_adres') );
l_adl_u_fni.pro_forma_email_adres_inh := gen_boolean.toGenboolean( p_boolean => updating('pro_forma_email_adres_inh') );
l_adl_u_fni.referentie_type_r1_oms := gen_boolean.toGenboolean( p_boolean => updating('referentie_type_r1_oms') );
l_adl_u_fni.referentie_type_r1_oms_inh := gen_boolean.toGenboolean( p_boolean => updating('referentie_type_r1_oms_inh') );
l_adl_u_fni.referentie_type_r2_oms := gen_boolean.toGenboolean( p_boolean => updating('referentie_type_r2_oms') );
l_adl_u_fni.referentie_type_r2_oms_inh := gen_boolean.toGenboolean( p_boolean => updating('referentie_type_r2_oms_inh') );
l_adl_u_fni.referentie_type_r3_oms := gen_boolean.toGenboolean( p_boolean => updating('referentie_type_r3_oms') );
l_adl_u_fni.referentie_type_r3_oms_inh := gen_boolean.toGenboolean( p_boolean => updating('referentie_type_r3_oms_inh') );
l_adl_u_fni.referentie_type_po_oms := gen_boolean.toGenboolean( p_boolean => updating('referentie_type_po_oms') );
l_adl_u_fni.referentie_type_po_oms_inh := gen_boolean.toGenboolean( p_boolean => updating('referentie_type_po_oms_inh') );
l_adl_u_fni.verzend_kanaal_lst := gen_boolean.toGenboolean( p_boolean => updating('verzend_kanaal_lst') );
l_adl_u_fni.verzend_kanaal_lst_inh := gen_boolean.toGenboolean( p_boolean => updating('verzend_kanaal_lst_inh') );
l_adl_u_fni.iban_nummer_isabel := gen_boolean.toGenboolean( p_boolean => updating('iban_nummer_isabel') );
l_adl_u_fni.iban_nummer_isabel_inh := gen_boolean.toGenboolean( p_boolean => updating('iban_nummer_isabel_inh') );
l_adl_u_fni.iban_nummer_zoomit := gen_boolean.toGenboolean( p_boolean => updating('iban_nummer_zoomit') );
l_adl_u_fni.iban_nummer_zoomit_inh := gen_boolean.toGenboolean( p_boolean => updating('iban_nummer_zoomit_inh') );
l_adl_u_fni.identificatie_nr_verz_ka := gen_boolean.toGenboolean( p_boolean => updating('identificatie_nr_verz_ka') );
l_adl_u_fni.identificatie_nr_verz_ka_inh := gen_boolean.toGenboolean( p_boolean => updating('identificatie_nr_verz_ka_inh') );
l_adl_u_fni.ob10_nummer := gen_boolean.toGenboolean( p_boolean => updating('ob10_nummer') );
l_adl_u_fni.ob10_nummer_inh := gen_boolean.toGenboolean( p_boolean => updating('ob10_nummer_inh') );
l_adl_u_fni.ariba_nummer := gen_boolean.toGenboolean( p_boolean => updating('ariba_nummer') );
l_adl_u_fni.ariba_nummer_inh := gen_boolean.toGenboolean( p_boolean => updating('ariba_nummer_inh') );
l_adl_u_fni.volgt_fpr_bedrijf_lst := gen_boolean.toGenboolean( p_boolean => updating('volgt_fpr_bedrijf_lst') );
l_adl_u_fni.volgt_fpr_bedrijf_lst_inh := gen_boolean.toGenboolean( p_boolean => updating('volgt_fpr_bedrijf_lst_inh') );
l_adl_u_fni.facturatie_bedrijf_lst := gen_boolean.toGenboolean( p_boolean => updating('facturatie_bedrijf_lst') );
l_adl_u_fni.facturatie_bedrijf_lst_inh := gen_boolean.toGenboolean( p_boolean => updating('facturatie_bedrijf_lst_inh') );
l_adl_u_fni.facturatie_methode_lst := gen_boolean.toGenboolean( p_boolean => updating('facturatie_methode_lst') );
l_adl_u_fni.facturatie_methode_lst_inh := gen_boolean.toGenboolean( p_boolean => updating('facturatie_methode_lst_inh') );
l_adl_u_fni.reden_validatie_lst := gen_boolean.toGenboolean( p_boolean => updating('reden_validatie_lst') );
l_adl_u_fni.reden_validatie_lst_inh := gen_boolean.toGenboolean( p_boolean => updating('reden_validatie_lst_inh') );
l_adl_u_fni.memo_validatie := gen_boolean.toGenboolean( p_boolean => updating('memo_validatie') );
l_adl_u_fni.memo_validatie_inh := gen_boolean.toGenboolean( p_boolean => updating('memo_validatie_inh') );
l_adl_u_fni.reden_pro_forma_lst := gen_boolean.toGenboolean( p_boolean => updating('reden_pro_forma_lst') );
l_adl_u_fni.reden_pro_forma_lst_inh := gen_boolean.toGenboolean( p_boolean => updating('reden_pro_forma_lst_inh') );
l_adl_u_fni.memo_pro_forma := gen_boolean.toGenboolean( p_boolean => updating('memo_pro_forma') );
l_adl_u_fni.memo_pro_forma_inh := gen_boolean.toGenboolean( p_boolean => updating('memo_pro_forma_inh') );
l_adl_u_fni.adl_id_btw := gen_boolean.toGenboolean( p_boolean => updating('adl_id_btw') );
l_adl_u_fni.adl_id_btw_inh := gen_boolean.toGenboolean( p_boolean => updating('adl_id_btw_inh') );

act_adl_tapi.upd
( p_pk => t_act_account_details_pk(:new.id)
, p_adl_u => l_adl_u
, p_adl_u_fni => l_adl_u_fni
);
end;
/
SHOW ERRORS;

--> Is looks like a mix of 2 views my source view is ACT_ACCOUNT_GROEPEN_TV but the trigger code is for another view act_account_details_tv. (the spec part:
<<
CREATE OR REPLACE TRIGGER MINERVA_DAO.act_account_groepen_iio
instead of insert
ON MINERVA_DAO.ACT_ACCOUNT_GROEPEN_TV
for each row

is correct the trigger body is wrong.

Any idea what might be the cause?

Regards

Christophe

Would be nice to know the steps leading up to this?
e.g. did you ONLY compare the trigger between source and target?
The table with said trigger?
Through the Object Compare wizard? Options used?

hi

I compared a full schema via cmd-line:
Toad.exe -c $source_connect $target_connect -a "App1->compare | MINERVA_DAO.ini]" minerva_dao

MINERVA_DAO.ini
[9]
Name=compare
Type=Compare Schemas
ConnectionCount=1
Connection_1=MINERVA_ADMIN@ORCL
ObjectTypesToCompare=Check Constraints, Comment, Materialized View Comment, Materialized View Column Comment, Table Comment, Table Column Comment, View Comment, View Column Comment, Constraint, Type, Type Body, FK Constraints, Index, Java Source, Package, Package Body, PK Constraints, Procedure, Queue, Queue Table, Sequence, Private Synonyms, Synonym, Datatype, Table, Trigger, Type, View, Function, Grant, Unique Constraint
Options=Schema Compare, FORCE views, Ignore Con Name Diffs, Ignore Case in PLSQL Comparisons, Include Schema Name, UpperCase like search, No Comp Seq Minval, No Recycle Bin Objects, No White Space, Null=Blank for col defaults, No Double Quotes, Inc. Set Define Off, Sort, Storage, Comp Tablespace, View Columns, Drop/Create Seq, No Comp Col Order, ComparePrivateSynTargetSchema, Dont compare schema name in trigger desc, Inc Prompt Cmds, Deps in Script Comments, Script Comments, Not Like

Source and Target

SourceConnection1=MINERVA_ADMIN@ORCL
SourceSchema1=MINERVA_DAO
SourceDefFile1=
TargetConnection1=MINERVA_ADMIN@MINERVA-T
TargetSchema1=MINERVA_DAO
TargetDefFile1=

Filter: see Options "Not Like"

UseObjectNamesLike=TRUE
ObjectNamesLike=SYS%;AQ$%;M$%;SCHEDULER$%;GG_%;ST%=;MLOG$%;RUPD$%;%_CWV

Object Set (list of strings)

ObjectTS=
ExclusionFile=
DiffLimit=100000

Output - relative path

BaseOutputFolder=F:/git/nsfreleases/minerva/2023_02/patch.001/temp/output/
OutputSourceSnapshotFile=FALSE
OutputTargetSnapshotFiles=FALSE
OutputComparisonResultDetailFiles=TRUE
OutputComparisonResultSummaryFiles=TRUE
OutputComparisonResultSyncFiles=TRUE
OutputComparisonResultDetailEmail=FALSE
OutputComparisonResultSummaryEmail=FALSE
OutputComparisonResultSyncEmail=FALSE

(Attachment MINERVA_DAO.ini is missing)

Do you have Team Coding enabled?

Toad's schema compare does not try to 'merge' your changes from source to target. If there is a difference in triggers, it will get the script to create the source trigger and put that in the script to run on the target db.

Team Coding, however, may merge your changes in certain situations, but it should always prompt before doing so.

I will try to reproduce it if you send me a script to create the view and trigger in each DB.

-John

This command line call doesn't look correct to me... is this what you actually ran?
That is, had you created an automation app called App1 that contains a task called
"compare | MINERVA_DAO.ini]"
or
"compare | MINERVA_DAO.ini]" minerva_dao?

And if so, I wonder if Windows batch shell is getting confused with the pipe symbol?

Just thinking out loud, as the task name looks highly unusual.

hi John, We are not using team-code.

hi Gary

The command-line was pasted from a (tcl)script, we do +200 schema compares per week, I am pretty sure this is not a shell issue (code is not changed in months).

I copied pasted the exact command from a log file as executed by the windows shell:

Toad.exe -c minerva_admin/@orcl minerva_admin/@minerva-t -a "App1->compare | F:/git/nsfreleases/minerva/2023_04/patch.003/temp/ini/minerva_dao.ini"

The strange thing is: it is not always reproducible, I did a 're-compare' and re-created the trigger correctly with the same instruction.

My best guess would be that toad has an array with all oracle-objects, and the key (or value) is switched in some kind of race condition.

regards

Christophe

Note: we run these toad.exe statements in parallel (30+ schemas).

Hi Christophe,

If you have parallel calls to Toad, then each Toad is working in its own memory space, but there may be some file sharing problems going on.

Is it possible that two of your parallel processes are writing to the same file at once? That's what it sounds like might be happening to me.

Are there any comparisons of the same schemas going on at the same time, or is it all different schemas?

-John

hi, never the same schema, 30+ different schema's on the same source/target databases. (with different output folder and different .ini files)

Hi Christophe,

I just set up a test here comparing one schema to another (each on a different DB, as yours is), thinking that there might be some temp file usage, but we actually only use temp files if a we are comparing more than a single pair of schemas. (one to many).

I'm sorry, I don't have any ideas at this time for you, other than the obvious (try running fewer processes in parallel and run some of them after the first group completes).

If I think of anything else, I'll let you know.

Sorry.

-John