如何解决从文件共享导入CSV到SQL表时的DelimitedTextMoreColumnsThanDefined错误
CSV加载SQL表列数不匹配问题解决
错误信息
ErrorCode=DelimitedTextMoreColumnsThanDefined
Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException, Message=处理'Csv/Tsv Format Text'源文件'file1.csv'的第5行时出错:发现的列数超过预期的17列。Source=Microsoft.DataTransfer.Common
第5行内容:KPY,2524YT,PLOTTED,0,2524YT,PLOTTED,2524YT,PLOTTED,NULL,NULL,NULL,NULL,A,2,2,231,ATON,INC.
问题分析
从行内容可看出,该行实际被解析出18列,而目标SQL表或读取配置定义的列数为17列。核心原因是最后两个字段ATON和INC.本应为一个完整字段(如公司名称ATON,INC.),但未用引号包裹,导致逗号被识别为列分隔符,拆分出额外一列。
解决方案
- 修正源CSV字段格式:将第5行最后两个字段用双引号包裹,修改为:
确保所有包含列分隔符(逗号)的字段都用双引号包裹,避免被错误拆分。KPY,2524YT,PLOTTED,0,2524YT,PLOTTED,2524YT,PLOTTED,NULL,NULL,NULL,NULL,A,2,2,231,"ATON,INC." - 调整CSV读取配置:确认读取工具中「允许引号包含分隔符」的选项已启用,保持引号字符为双引号(""),转义字符设为双引号(此时字段内若有双引号需用两个双引号转义,如
"ABC""DEF")。 - 核对SQL表结构:确认目标SQL表的列数是否与CSV实际列数匹配,若表列数确实不足,需新增对应列。
- 检查文件编码:最后一个字段包含全角字符,可能存在编码不兼容问题,将CSV转换为UTF-8编码后重试加载。
内容的提问来源于stack exchange,提问作者Osceria
相关产品推荐
相关产品推荐

