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



我正在使用DEL REPLACE INTO T_table的LOAD from${CSVFILE}格式从脚本中的文件加载DB2表。当列值为"0"时&",SQL Developer将值显示为(null(,但这不是实际的null。我想要的行为是将该值设置为NULL,以便设置列默认值。如何使它在空字符串的情况下在数据库中设置NULL值?

您可以使用EXTERNAL TABLE功能,因为使用用户出口应用程序使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个链接。

最新更新