用union一直显示字符集不匹配

(select
        to_char(a.zzcont) as zzcont,
        a.EBELN ,
        a.zzzddlsh,
        a.ZZCGDDMC,
        to_char(a.bukrs) as bukrs,
        a.aedat,
        a.zzcggl,
        to_char(a.lifnr) as lifnr,
        to_char(f.name1) as name1,
        b.EBELP,
        case when b.LOEKZ ='' then '正常' when b.LOEKZ ='L' then '作废' when b.LOEKZ ='S' then '冻结' else '其他' end LOEKZ1,
        b.TXZ01,
        b.MATNR,
        b.MATKL,
        decode(b.mwskz,'J0','0','J1','0.17','J2','0.06','J3','0.11','J4','0.03','J5','0.13','J6','0.05','J8','0.015','JA','0.16','JB','0.1','JC','0.13','JD','0.09','JE','0.01')mwskz,
        case when b.elikz='X' THEN '是' else '否' end elikz1,
        e.sakto,
        to_char(e.prctr) as prctr,
        to_char(e.kostl) as kostl,
        b.zdate,
        CASE WHEN t.BWART !='' and t.SHKZG = 'S' THEN t.WRBTR when t.BWART !='' and t.SHKZG = 'H' then -t.WRBTR ELSE 0 END BWART1,
        CASE WHEN t.BWART ='' and t.SHKZG = 'S' THEN t.AREWB when t.BWART ='' and t.SHKZG = 'H' then -t.AREWB ELSE 0 END BWART2,
        h.zhzdh,
        null,
        null,
        null,
        null,
        null
        from Ekko a
        left join Ekpo b
        on a.ebeln=b.ebeln
        left join Ekkn e
        on b.ebeln=e.ebeln
        and b.ebelp=e.ebelp
        left join EKBE t
        on b.ebeln=t.ebeln
        and b.ebelp=t.ebelp
        left join lfa1 f
        on a.lifnr=f.lifnr
        left join ztmm_hzpomap h
        on a.ebeln=h.ebeln)
        union 
        (select 
        a.ID,
        a.WRITEOFF_INSTANCE_CODE,
        to_char(a.CONTRACTNO) as zzcont ,
        a.CONTRACT_NAME,
        a.FILL_IN_NAME,
        a.FILL_IN_DEP,
        a.STATUS,
        to_char(a.SUPPLIER_NAME) as name1,
        to_char(a.SUPPLIER_CODE) as lifnr,
        a.CITY_ID,
        a.CITY_NAME,
        a.COMPANY_CODE as bukrs,
        a.ABSTRACT,
        to_char(a.FILL_IN_PROFIT_CENTER_ID) as prctr,
        to_char(a.FILL_IN_COST_CENTER_ID) as kostl,
        a.FILL_IN_PROFIT_CENTER_NAME,
        a.FILL_IN_COST_CENTER_NAME ,
        a.BUDGETSETNAME ,
        a.BIZ_ENTRY_CODE ,
        a.BIZ_ENTRY_NAME,
        b.WRITEOFF_INSTANCE_ID,
        b.WBS_NO,
        b.ACCOUNT_CODE ,
        b.ACCOUNT_NAME ,
        b.sum,
        CASE WHEN b.BUDGET_TYPE='1' THEN b.sum  ELSE 0 END BUDGET_TYPE1,
        CASE WHEN b.BUDGET_TYPE='2' THEN b.sum  ELSE 0 END BUDGET_TYPE2,
        b.BUDGET_ITEM_CODE
        from writeoff_instance a
        left join WRITEOFF_DETAIL b
        on a.ID=b.WRITEOFF_INSTANCE_ID)

union 前后表字段要一致

select A as 字段1 from T1
union
select B as 字段1 from T2