使用db2 load命令时表比文件多一列并如何赋予参数默认值

时间:2021-07-19 09:51:26
假如文件有10列,表有11列,其中前10列跟文件结构一致,最后一列是日期字段,我想使用load命令时能否带个日期参数一起将“文件+日期参数"load进表里面。

3 个解决方案

#1


我建议不要使用LOAD来做导入数据的操作,LOAD一般会出现表暂挂(PENDING)的问题;
数据导出
db2 "export to c:/data.ixf of ixf modified by codepage=1208 select * from table"

数据导入
db2 "import from c:/data.ixf of ixf modified insert into table"


modified by codepage=1208 采用UTF-8方式,这里的代号根据操作系统字符集来设置.
IXF和DEL的区别你也可以查看网上的说明,我个人推荐IXF,DEL会出现换行符的问题。

#2


什么方式不重要,那种方式比较好都可以改,现在是想实现表最后比数据文件多数来的一列能不能做到参数化来实现(通过这些命令或者shell脚本都可以)

#3


引用 2 楼 cowyouboy 的回复:
什么方式不重要,那种方式比较好都可以改,现在是想实现表最后比数据文件多数来的一列能不能做到参数化来实现(通过这些命令或者shell脚本都可以)


你可以重新导出数据文件;只是在导出数据时SELECT语句要多加入一个虚拟字段,把数据文件和目标表的列进行匹配对应起来。

如果不想通过上述导出数据文件的话而且是DEL格式的数据文件,那么你可以手动进行编辑或写个程序对数据文件进行编辑后导入。

#1


我建议不要使用LOAD来做导入数据的操作,LOAD一般会出现表暂挂(PENDING)的问题;
数据导出
db2 "export to c:/data.ixf of ixf modified by codepage=1208 select * from table"

数据导入
db2 "import from c:/data.ixf of ixf modified insert into table"


modified by codepage=1208 采用UTF-8方式,这里的代号根据操作系统字符集来设置.
IXF和DEL的区别你也可以查看网上的说明,我个人推荐IXF,DEL会出现换行符的问题。

#2


什么方式不重要,那种方式比较好都可以改,现在是想实现表最后比数据文件多数来的一列能不能做到参数化来实现(通过这些命令或者shell脚本都可以)

#3


引用 2 楼 cowyouboy 的回复:
什么方式不重要,那种方式比较好都可以改,现在是想实现表最后比数据文件多数来的一列能不能做到参数化来实现(通过这些命令或者shell脚本都可以)


你可以重新导出数据文件;只是在导出数据时SELECT语句要多加入一个虚拟字段,把数据文件和目标表的列进行匹配对应起来。

如果不想通过上述导出数据文件的话而且是DEL格式的数据文件,那么你可以手动进行编辑或写个程序对数据文件进行编辑后导入。