数据类型不一致: 应为 TIMESTAMP, 但却获得 CHAR。为什么会出现这种情况呢?而且使用to_timestamp函数也无效
insert into MATERIAL_INFO(MATNRID,SERNR,CHARG,MEINS,PROPERID,HSDAT,VFDAT,FVDT4,FVDT2,EFDT,CLABS,CREATEID,CHECKSTATUSID)
select A.* from
--matnrId,A.sernr, A.charg,A.meins,A.properId,A.hsdat,A.vfdat,A.fvdt4,A.fvdt2,to_timestamp(A.efdt,'yyyy-mm-dd hh24:mi:ss'),A.clabs,A.createId,A.checkstatusid
(
<foreach collection="insertList" item="item" index="index" separator="UNION ALL">
select
#{item.matnrId} matnrId,
#{item.sernr} sernr,
#{item.charg} charg,
#{item.meins} meins,
#{item.properId} properId,
#{item.hsdat} hsdat,
#{item.vfdat} vfdat,
#{item.fvdt4} fvdt4,
#{item.fvdt2} fvdt2,
case
when #{item.vfdat} is NULL and #{item.fvdt2} is not null then #{item.fvdt2}
when #{item.vfdat} is not null and #{item.fvdt2} is null then #{item.vfdat}
when #{item.vfdat} is null and #{item.fvdt2} is null then null ELSE least(#{item.vfdat},#{item.fvdt2})
end,
#{item.clabs} clabs,
#{item.createId} createId,
'8AF195A0430847C8BE3F57CCC46B75A4' checkstatusid
from DUAL
</foreach>
)A