DB2 Warehouse加载CSV文件列名不匹配问题怎么解决?
DB2 Warehouse CSV加载列名不匹配解决方案
核心原因
DB2 Warehouse默认CSV加载配置未开启「首行作为表头识别」,而DB2 on Cloud默认开启该配置,这是相同CSV文件在两个产品加载行为不一致的根本原因,未开启时系统会自动生成Column 0、Column 1这类默认列名。
解决方法
单次加载临时配置
- 图形化Web控制台加载:在CSV上传后的参数配置页,勾选首行作为列名选项后重新执行加载即可。
LOAD命令行加载:
若目标表已存在,添加SKIPCOUNT 1参数跳过表头行,同时指定列映射:LOAD FROM /path/your_data.csv OF DEL SKIPCOUNT 1 INSERT INTO your_schema.your_table (Patient, 其他列名按顺序排列)
若需要加载时自动创建目标表,添加HEADER YES参数自动提取CSV首行作为列名:LOAD FROM /path/your_data.csv OF DEL HEADER YES CREATE INTO your_schema.your_table- 内置REST API/编程接口加载:在请求体的
options参数中添加"header": true字段。
全局默认配置修改(需实例管理员权限)
修改实例级配置参数DB2_DW_LOAD_DEFAULT_HEADER为YES,配置生效后所有用户默认执行CSV加载时都会自动识别首行作为表头,无需每次单独指定参数。
注意:如果CSV列名包含特殊字符、空格、超出DB2标识符长度限制,系统仍会自动对列名重命名,建议提前将CSV列名调整为符合DB2命名规范的格式,避免非预期的列名修改。
内容的提问来源于stack exchange,提问作者tkochie
相关产品推荐
相关产品推荐

