如何使db2加载无效值为null,而不是odlf拒绝整个记录

如何使db2加载无效值为null,而不是odlf拒绝整个记录,db2,load,Db2,Load,我使用DB2Load实用程序将数据文件加载到表中,其中有一列日期。在数据文件中,其格式为yyyymmdd,空值为00000000。我在“修改人”之后指定了dateformat,对于具有有效日期的记录,它会加载perfecrty,但它会拒绝日期列中具有00000000的所有记录。我不想拒绝这些记录,但要加载它们并在“日期”列中设置null,我如何才能做到这一点?load没有更改输入文件中null值表示方式的选项。一个选项是生成的列 db2 "create table d(i int, d gene

我使用DB2Load实用程序将数据文件加载到表中,其中有一列日期。在数据文件中,其格式为yyyymmdd,空值为00000000。我在“修改人”之后指定了dateformat,对于具有有效日期的记录,它会加载perfecrty,但它会拒绝日期列中具有00000000的所有记录。我不想拒绝这些记录,但要加载它们并在“日期”列中设置null,我如何才能做到这一点?

load
没有更改输入文件中null值表示方式的选项。一个选项是生成的列

db2 "create table d(i int, d generated always as (case when i > 0 then DATE(TO_DATE(i,'YYYYMMDD')) END)) organize by row"
echo 00000000 > d.in
echo 20180101 >> d.in
load from d.in of del replace into d nonrecoverable
db2 "select * from d"
给予


加载到VARCHAR(或整数)中,并使用生成的列对VARCHAR(或整数)列进行条件日期转换。或者通过管道将文件传输到
sed
,或者使用摄取,或者使用暂存表,然后将转换后的数据复制到第二个表,或者(如果使用Db2仓库)使用外部表,或者使用ETL工具
I           D         
----------- ----------
          0 -         
   20180101 01/01/2018

  2 record(s) selected.