【发布时间】:2018-12-27 21:28:36
【问题描述】:
我正在从 SQL Server 2008R2 升级到 2017,并使用 SSIS 进行同样的跳跃。有许多平面文件导入正在拾取在行的列中嵌入了回车/换行符 ({CR}{LF}) 的文件。
2008R2 平面文件连接管理器会忽略一行内嵌入的 {CR}{LF}s,但 2017 年的平面文件连接管理器会将每个 {CR}{LF} 视为一个新行。在升级的连接管理器或我从头开始制作的全新连接管理器中也是如此。
在两个版本中,连接管理器具有相同的规范:
General Tab
Locale: English (United States)
Unicode: No
Code page: 1252 (ANSI-Latin I)
Format: Delimited
Text qualifier: <none>
Header row delimiter: {CR}{LF}
Header rows to skip: 0
Column names in the first data row: Check
Columns Tab
Row delimiter: {CR}{LF}
Column delimiter: Vertical Bar{|}
我正在测试的不是特别复杂的文本文件:
row_id|row_data|empty_column|created_by|one_more_field{CR}{LF}
1|random test data||ebrandt|{CR}{LF}
2|Data field with a carriage return{CR}{LF}
and a line feed embedded in it.||ebrandt|
我粘贴了行终止符,只是为了表明它们在那里。
在Columns 选项卡上,BIDS 2008R2 中的预览窗口显示两行:
但在 2017 年,完全相同的文件被分成三行:
此项目中没有带宽来重新处理所有文件导入。
我可以更改回版本之间的设置是否已更改?还是我缺少另一个技巧?
编辑:作为对已删除评论的回应,如果可以的话,我会指定一个文本限定符,但我得到的文件没有。
【问题讨论】:
标签: sql-server ssis sql-server-2008-r2 sql-server-2017