Azure Data Factory复制活动使用自定义行分隔符报错如何解决
ADF复制活动行分隔符参数报错解决方案
报错根因
“Copy activity doesn't support multi-char or none row delimiter”报错的核心逻辑是:
- ADF复制活动的数据集行分隔符参数仅支持单字符输入或系统预设的转义控制符标识,你传入的未转义控制字符、多字符组合、字符串形式的
r/n都会被识别为无效值。 - 默认选项中的
\r\n、\n等是ADF内部预设的枚举值,不属于用户自定义传入的字符串参数范畴,所以直接用默认配置有效、手动传参无效。 - 你之前单独传入
r或n时行未拆分,是因为传入的是普通字母字符,ADF会将数据中出现字母r/n的位置作为行拆分点,而不是识别为回车/换行控制符。
可行解决方案
场景1:使用系统预设的单/双控制符行分隔符
如果你需要的行分隔符是\n(换行)、\r(回车)、\r\n(回车换行)三类常规控制符,按以下规则传参即可:
- 管道参数定义行分隔符时,传入带转义反斜杠的字符串:
- 换行符传
\\n - 回车符传
\\r - 回车换行符传
\\r\\n
- 换行符传
- ADF执行时会自动将上述转义字符串解析为对应的控制符,不会触发多字符分隔符报错。
场景2:使用自定义多字符行分隔符
如果你的业务要求的行分隔符是超过1个字符的自定义字符串(比如||、END等),无法通过复制活动直接实现,需要新增映射数据流处理:
- 首先通过复制活动将SQL读取到的数据输出为中间文件,行分隔符设置为默认
\n、列分隔符、编码匹配业务要求 - 新建映射数据流读取该中间文件,新增派生列组件,给每一行的末尾拼接你需要的自定义多字符分隔符
- 数据流输出时设置为无行分隔符,最终输出的文件就会匹配你需要的行分隔规则。
验证方法
文件生成后,可通过十六进制编辑器打开文件,确认行尾编码匹配要求:
\n对应十六进制值0A\r对应十六进制值0D\r\n对应十六进制值0D 0A
内容的提问来源于stack exchange,提问作者GettingItDone
相关产品推荐
相关产品推荐

