gpt4 book ai didi

sql-server - 平面文件连接管理器回车/换行差异

转载 作者:行者123 更新时间:2023-12-03 00:18:43 25 4
gpt4 key购买 nike

我正在从 SQL Server 2008R2 升级到 2017,并使用 SSIS 进行同样的跳跃。有许多平面文件导入会拾取在行的列中嵌入回车/换行符 ({CR}{LF}) 的文件。

2008R2 平面文件连接管理器会忽略行内嵌入的 {CR}{LF},但 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|

我粘贴了行终止符,只是为了表明它们在那里。

选项卡上,BIDS 2008R2 中的预览窗口显示两行:

2008R2_connectionmgr

但在 2017 年,完全相同的文件被分成三行:

2017_connectionmgr

此项目中没有带宽来重新处理所有文件导入。

是否有某个设置在版本之间发生了更改,我可以更改回来?或者我还缺少另一个技巧吗?

编辑:为了响应已删除的评论,如果可以的话,我会指定一个文本限定符,但我收到的文件没有任何限定符。

最佳答案

在平面文件连接管理器中,您需要将 AlwaysCheckForRowDelimiters 属性设置为 False

然后您的文件将像以前一样被解析。

这是 2012 年进行的一项更改,将行为更改为 the following

By default, the Flat File connection manager always checks for a row delimiter in unquoted data, and starts a new row when a row delimiter is found. This enables the connection manager to correctly parse files with rows that are missing column fields.

参见this link了解更多相关信息。

关于sql-server - 平面文件连接管理器回车/换行差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53951062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com