db2 加载到表中时,将csv文件列的空字符串替换为NULL

r1zk6ea1  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(528)

我正在使用LOADFROM ${CSVFILE} OF DEL REPLACEINTO T_TABLE格式从脚本中的一个文件加载DB2表。SQL Developer会将值显示为(null),但这不是实际的null。我想要的行为是将此值设置为NULL,以便设置列的默认值。我如何才能使它在空字符串的情况下,它将设置为空值在DB中?

vcirk6k6

vcirk6k61#

您可以使用EXTERNAL TABLE功能来实现这一点,因为使用user exit应用程序使LOAD将空值转换为NULL并不容易。

db2 "declare c1 cursor for select nullif (a, '') as a, b from external '${CSVFILE}' (a varchar (10), b int) using (delimiter ',' quotedvalue double)"
db2 "load from c1 of cursor replace into T_TABLE"

备注:
您必须在DECLARE CURSOR命令中适当地描述所有文件字段。
您可以在USING子句中使用其他适当的选项(ENCODING、CRINSTRING、LFINSTRING等)-有关详细信息,请参阅第1个链接。

相关问题