简单CSV数据流的SSIS错误

简单CSV数据流的SSIS错误,ssis,foreach-loop-container,Ssis,Foreach Loop Container,很抱歉,我的麻烦让你的日子变得黯淡,但是SSIS让我崩溃了!我是SSIS的新手,我似乎只是误解了它 背景:我有几个版本的基本包,其中包括一个Foreach循环容器和一个数据流,其中包含几个派生列,这些派生列将CSV文件导入到sqlserver临时表中。它非常简单,包括一个执行SQL任务和一个文件移动,但这些都可以很好地工作。问题在于Foreach循环和数据流 我有一个版本的这个包(让我们称之为“A”),它似乎工作得很好。它将处理文件夹中的多个文件,将记录插入临时表,正确执行SQL语句,并将文件移

很抱歉,我的麻烦让你的日子变得黯淡,但是SSIS让我崩溃了!我是SSIS的新手,我似乎只是误解了它

背景:我有几个版本的基本包,其中包括一个Foreach循环容器和一个数据流,其中包含几个派生列,这些派生列将CSV文件导入到sqlserver临时表中。它非常简单,包括一个执行SQL任务和一个文件移动,但这些都可以很好地工作。问题在于Foreach循环和数据流

我有一个版本的这个包(让我们称之为“A”),它似乎工作得很好。它将处理文件夹中的多个文件,将记录插入临时表,正确执行SQL语句,并将文件移动到存档。在我仔细检查过程之前,一切似乎都很好。原来它是从一个文件复制数据,而从不从第二个源文件导入数据!然而,第二轮/dupe数据包括第二个文件的源文件名(通过派生列)(但第一个文件的数据除外)。看起来我已经成功地处理了这两个文件,直到我查看了实际数据,发现第二个源文件中的任何值都没有写入Staging表

一旦我发现了这一点,我认为问题在于Foreach循环以及如何设置不同的文件路径和名称变量。因此,我决定尝试制作一个新版本的软件包。我从复制包A开始,创建了包B。在B中,我删除了源连接管理器,并创建了一个新的连接管理器以及所有新的文件和路径变量。然后,我尝试清理/修复/替换数据流和Foreach循环中的各种元素。在这个过程中,我发现A中的高级映射实际上都是设置为字符串的(甚至是货币和日期列)。这似乎不对,所以我修改了每个源货币列,将其更改为数据类型Currency,并将每个与日期相关的列更改为数据类型date

接下来发生了几十个错误,我无法运行包B。我甚至将所有B数据类型都改回了字符串(镜像了A包中的设置,该设置确实有效)。但是,仍然没有快乐

这让我向你们中比我聪明的人问了几个问题:

1) 为什么SSI不能使用正确的数据类型解释源CSV数据?也就是说,为什么我需要将每一个输入列都设置为字符串,而有些列是明确的、完全数字的、货币的或日期的?(是的,源CSV文件非常干净–大多数文件甚至没有空值)

a。当我将与日期相关的源列的高级映射更改为date时,会收到始终存在的错误消息:[平面文件源[30]]错误:数据转换失败。“结算日期”列的数据转换返回状态值2和状态文本“由于数据可能丢失,无法转换该值。”

2) 当我在包B中将数据类型重置回字符串时,仍然会出现错误——通常是截断错误(是的,我已经将其中一列的长度调整为250)。 A.错误消息:“由于可能丢失数据,无法转换该值。”。 B当我重置映射以忽略该列(作为测试)时,它会在下一列抛出类似的错误

3) 你知道为什么包A会复制一个文件的数据而不处理第二个文件,却不会抛出错误并将两者都移动到存档吗

4) 为什么Data Viewer似乎有解析错误(它在错误的列中显示数据),但当您在Data Viewer中使用“复制数据”功能并将其粘贴到Excel中时,所有数据都会完美地对齐

5) 新手SSIS用户需要了解哪些技巧和窍门,而这些技巧和窍门可能在文档和搜索web文章以及本网站中并不明显

如果有帮助的话,我可以提供更多的细节,但是这些软件包非常简单,不应该给我带来这么多的挫折

谢谢你的见解


DGP

哇,看来你有很多ssis问题。。。我认为提取同一个文件的原因是因为“变量映射”的定义方式

您是否看过并遵循了以下指南:

希望这有帮助


Shaheen

哇,看来你有很多ssis问题。。。我认为提取同一个文件的原因是因为“变量映射”的定义方式

您是否看过并遵循了以下指南:

希望这有帮助

Shaheen

谢谢Tab&Shaheen

所有SSIS新手-请从我的错误中学习

似乎我的问题实际上在于如何在连接管理器中标识文本限定符。我输入了“”,这导致如何解析我的列出现问题。解析问题导致某些列中出现意外值,从而导致包中出现错误

当我尝试将文本限定符更改为只有一个双引号-“-整个过程都成功了

正如我所提到的——正如Shaheen所怀疑的那样——我最初的重复处理问题可能是由于我如何设置foreach循环。我已经修复了这个问题,但在修复文本限定符之前,bit仍然存在错误

我只测试过几次,但看起来这就是问题所在

谢谢你的贡献

DGP

谢谢Tab&Shaheen

所有SSIS新手-请从我的错误中学习

似乎我的问题实际上在于如何在连接管理器中标识文本限定符。我输入了“”,这导致了如何解析我的列的问题。解析问题导致某些列中出现意外值,从而导致包中出现错误。