You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用DB2 LOAD命令导入CSV时为指定列填充常量值?

问题描述

现有两个CSV文件,均包含c1、c2、c3、c4四列;已创建一个DB2表,包含a1、a2、a3、a4、a5五列。需要分别将两个CSV文件导入该表,且每次导入时为a1列填充不同的常量值(如my_value1、my_value2)。

CSV文件1内容:

c1,c2,c3,c4
............
1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4

CSV文件2内容:

c1,c2,c3,c4
............
5,6,7,8
5,6,7,8
5,6,7,8
5,6,7,8

期望导入后的表数据:

a1, a2, a3, a4 ,a5
..................
my_value1,1,2,3,4
my_value1,1,2,3,4
my_value1,1,2,3,4
my_value1,1,2,3,4
my_value2,5,6,7,8
my_value2,5,6,7,8
my_value2,5,6,7,8
my_value2,5,6,7,8

尝试了以下命令但无法生效:

load from path\file1 of del insert into table_name(my_value1, c1,c2,c3,c4)
load from path\file2 of del insert into table_name(my_value2, c1,c2,c3,c4)
解决方案

DB2的LOAD命令不能直接将常量值写在表的列列表中,需要通过VALUES子句指定常量与CSV列的映射关系。以下是正确的命令写法:

导入第一个CSV文件(a1填充my_value1):

LOAD FROM path\file1 OF DEL
INSERT INTO table_name(a1, a2, a3, a4, a5)
VALUES('my_value1', ?, ?, ?, ?)

导入第二个CSV文件(a1填充my_value2):

LOAD FROM path\file2 OF DEL
INSERT INTO table_name(a1, a2, a3, a4, a5)
VALUES('my_value2', ?, ?, ?, ?)

说明

  • 命令中的?是占位符,对应CSV文件中的每一列(顺序与CSV列一致),分别映射到表的a2、a3、a4、a5列。
  • 常量值需要用单引号包裹,符合DB2的字符串格式要求。
  • 若CSV文件的分隔符不是默认逗号,可添加MODIFIED BY COLDELx参数(x为实际分隔符),例如分隔符是空格则用MODIFIED BY COLDEL' '。

内容的提问来源于stack exchange,提问作者hitseng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:22:19