ADF复制活动(SQL Server转CSV):避免逗号引发列拆分问题
解决SQL Server查询生成CSV时含逗号字段列拆分的问题
完全可以从SQL Server查询端处理,通过符合CSV格式规范的方式转义含逗号的字段,确保生成的CSV将这类字段识别为单列。
具体实现方案
1. 基础场景:字段本身不含双引号
直接用双引号包裹含逗号的字符串字段,这是CSV格式的标准约定——被双引号括起的内容即使包含分隔符(逗号),也会被识别为单个字段:
SELECT ID, '"' + [ProductName] + '"' AS ProductName, -- 用双引号包裹目标字段 Category, Price FROM YourTargetTable
2. 进阶场景:字段本身包含双引号
如果字段内容自带双引号,需要按照CSV规范将内部的双引号转义为两个连续双引号,避免格式错误:
SELECT ID, '"' + REPLACE([ProductDesc], '"', '""') + '"' AS ProductDesc, -- 转义内部双引号并包裹 Category, Price FROM YourTargetTable
补充说明
如果不想在SQL中逐个处理字段,也可以在ADF复制活动的接收器设置中配置:
- 开启「引号字符」并设置为双引号(
") - 按需开启「转义字符」处理内部引号
但从查询源端处理的优势在于直接在数据源头规范格式,减少后续配置环节的遗漏风险。
内容的提问来源于stack exchange,提问作者Ariel Hiram Gómez López
相关产品推荐
相关产品推荐

