ClickHouse Union 全部例外

ClickHouse Union All exception

我写了用 union all 创建视图表达式。

create view if not exists V_REGRESULT as select 1                         AS jType,
                                                regF.smscid               AS SmscID,
                                                regF.eventdate            AS EventDate,
                                                regF.smppid               AS SmppID,
                                                regF.registereddate       AS RegisteredDate,
                                                regF.sendernpid           AS SenderNPid,
                                                regF.senderntid           AS SenderNTid,
                                                regF.senderdirectionid    AS SenderDirectionID,
                                                regF.CgPN                 AS CgPN,
                                                regF.OriginalCgPn         AS OriginalCgPN,
                                                regF.recipientnpid        AS RecipientNPid,
                                                regF.recipientntid        AS RecipientNTid,
                                                regF.recipientdirectionid AS RecipientDirectionID,
                                                regF.cdpn                 AS CdPN,
                                                regF.OriginalCdPn         AS OriginalCdPN,
                                                regF.ValidityPeriod       AS ValidityPeriod,
                                                regF.expireddate          AS ExpiredDate,
                                                regF.deliveryreporttypeid AS DeliveryReportTypeID,
                                                regF.umr                  AS Umr,
                                                regF.smtypeid             AS SmTypeID,
                                                regF.uhdiheaderinsm       AS UhdiHeaderInsm,
                                                regF.uhdisequenceid       AS UhdiSequenceID,
                                                regF.uhdipartstotal       AS UhdiPartsTotal,
                                                regF.uhdipartn            AS UhdiPartN,
                                                regF.setbackpath          AS SetBackPath,
                                                regF.smppencoding         AS SmppEncoding,
                                                regF.originalsmppencoding AS OriginalSmppEncoding,
                                                regF.retrycount           AS RetryCount,
                                                regF.retrycountsh         AS RetryCountsH,
                                                regF.schemeid             AS SchemeID,
                                                regF.lasterrortypeid      AS LastErrorTypeID,
                                                regF.lastneterror         AS LastNetError,
                                                regF.lastsmpperror        AS LastSmppError,
                                                regF.lastnativeerror      AS LastNativeError,
                                                regF.smstatusid           AS SmStatusID,
                                                regF.reportstatus         AS ReportStatus,
                                                regF.protocolid           AS ProtocolID,
                                                regF.modifiedprotocolid   AS ModifiedProtocolID,
                                                regF.dbencoding           AS DbEncoding,
                                                regF.messagelen           AS MessageLen,
                                                regF.smbody               AS SmBody,
                                                regF.senderserviceid      AS SenderServiceID,
                                                regF.recipientserviceid   AS RecipientServiceID,
                                                regF.imsi                 AS Imsi,
                                                regF.commutatorgt         AS CommutatorGT,
                                                regF.targetimsi           AS TargetImsi,
                                                regF.targetcommutatorgt   AS TargetCommutatorGT,
                                                regF.eventflag            AS EventFlag,
                                                regF.failcode             AS FailCode,
                                                regF.ScpGt                AS ScpGt,
                                                regF.ResultCode           AS ResultCode
                                         from SMCS.V_REGFAIL regF
                                         union all
                                         select 2                        AS jType,
                                                reg.SmscId               AS SmscID,
                                                reg.EventDate            AS EventDate,
                                                reg.SmppID               AS SmppID,
                                                reg.RegisteredDate       AS RegisteredDate,
                                                reg.SenderNPID           AS SenderNPid,
                                                reg.SenderNTID           AS SenderNTid,
                                                reg.SenderDirectionID    AS SenderDirectionID,
                                                reg.CgPN                 AS CgPN,
                                                reg.OriginalCgPN         AS OriginalCgPN,
                                                reg.RecipientNPid        AS RecipientNPid,
                                                reg.RecipientNTid        AS RecipientNTid,
                                                reg.RecipientDirectionID AS RecipientDirectionID,
                                                reg.CdPN                 AS CdPN,
                                                reg.OriginalCdPN         AS OriginalCdPN,
                                                reg.ValidityPeriod       AS ValidityPeriod,
                                                reg.ExpiredDate          AS ExpiredDate,
                                                reg.DeliveryReportTypeID AS DeliveryReportTypeID,
                                                reg.Umr                  AS Umr,
                                                reg.SmTypeID             AS SmTypeID,
                                                reg.UhdiHeaderInsm       AS UhdiHeaderInsm,
                                                reg.UhdiSequenceID       AS UhdiSequenceID,
                                                reg.UhdiPartsTotal       AS UhdiPartsTotal,
                                                reg.UhdiPartN            AS UhdiPartN,
                                                reg.SetBackPath          AS SetBackPath,
                                                reg.SmppEncoding         AS SmppEncoding,
                                                reg.OriginalSmppEncoding AS OriginalSmppEncoding,
                                                reg.RetryCount           AS RetryCount,
                                                reg.RetryCountsH         AS RetryCountsH,
                                                reg.SchemeID             AS SchemeID,
                                                reg.LastErrorTypeID      AS LastErrorTypeID,
                                                reg.LastNetError         AS LastNetError,
                                                reg.LastSmppError        AS LastSmppError,
                                                reg.LastNativeError      AS LastNativeError,
                                                reg.SmStatusID           AS SmStatusID,
                                                reg.ReportStatus         AS ReportStatus,
                                                reg.ProtocolID           AS ProtocolID,
                                                reg.ModifiedProtocolID   AS ModifiedProtocolID,
                                                reg.DbEncoding           AS DbEncoding,
                                                reg.MessageLen           AS MessageLen,
                                                reg.SmBody               AS SmBody,
                                                reg.SenderServiceID      AS SenderServiceID,
                                                reg.RecipientServiceID   AS RecipientServiceID,
                                                reg.Imsi                 AS Imsi,
                                                reg.CommutatorGT         AS CommutatorGT,
                                                reg.TargetImsi           AS TargetImsi,
                                                reg.TargetCommutatorGT   AS TargetCommutatorGT,
                                                ''                       AS EventFlag,
                                                ''                       AS FailCode,
                                                reg.ScpGt                AS ScpGt,
                                                ''                       AS ResultCode
                                         from SMCS.V_REGISTRATION reg
;

请求的视图中的所有列都存在。我对这个例外一无所知

Code: 386, e.displayText() = DB::Exception: There is no supertype for types String, DateTime because some of them are String/FixedString and some of them are not (version 19.15.3.6 (official build))

哪里会出错?像 select 1 as one union all select 2 as one 这样的简单联合效果很好。我唯一发现的是错误是由于 Array Join 引起的,当类型转换时。

最初,我认为这是由于 EventFlag 的 NULL 转换造成的,e.t.c,同时合并并用 '' 替换 NULL。但一切都没有改变

求助,求助

p.s。对不起我的英语

select now() union all select ''

Code: 386. DB::Exception: Received from localhost:9000. 
DB::Exception: There is no supertype for types DateTime, String 
because some of them are String/FixedString and some of them are not.

转换为字符串

select toString(now()) union all select ''
┌─toString(now())─────┐
│ 2019-11-19 14:25:13 │
└─────────────────────┘
┌─toString(now())─┐
│                 │
└─────────────────┘

'cast' 到日期时间

select now() union all select toDateTime(0)
┌───────────────now()─┐
│ 2019-11-19 14:25:48 │
└─────────────────────┘
┌───────────────now()─┐
│ 0000-00-00 00:00:00 │
└─────────────────────┘