SQL Server:LEN给出了意想不到的结果

时间:2015-01-06 19:52:04

标签: ssis

我在SQL Server 2008和SSIS(BIDS)工作。我有一个数据流任务,将平面文件放入目标表。目标表中的所有列都是varchar(255)。

我正在查询目的地表,我注意到一些奇怪的行为。

例如,在某个列中,有几个值是' 0.00'。当我对这个列运行LEN时,我得到7这个值,而不是4.为什么会发生这种情况?是否已知SSIS在数据流任务中引入非ASCII字符?

平面文件的一个例子是:

A|stuff||x||061|-117.96|0.00

我的表架构的一个示例: sp_help

1 个答案:

答案 0 :(得分:1)

我弄清楚我做错了什么。当我第一次创建我的SSIS包时,我操作的文本文件使用{LF}作为行分隔符。但是,我正在操作的当前文本文件将{CR} {LF}作为行分隔符。因此,在导入时,SQL在每个表的最后一列中保留了{CR}字符。在所有连接管理器上将SSIS包行分隔符更改为{CR} {LF}解决了该问题。