0

我有一个文件要使用 SSIS 2005 加载到 SQL Server 2005 中。

该文件有一个日期字段。这些值就像'12/01/2010 16:38:51'.

文件中的某些行是错误的,将被重定向到文本文件。2010-01-12 16:38:51但在文本文件中,日期将由SSIS更改。

无论如何只是将错误行重定向到文本文件而不进行任何修改?

4

2 回答 2

0

我发现如果平面文件源的高级编辑器的平面文件错误输出中的输出列是“平面文件源错误输出列”(并且列的类型默认应该是文本流[DT_TEXT])那么我的问题是解决了。这样,错误输出的平面文件管理器将自动将输出列设置为“平面文件源错误输出列”和“文本流 [DT_TEXT]”类型。这正是我想要的。SSIS 将整行视为“文本流 [DT_TEXT]”类型的单列,并且只是重定向。这似乎是 SSIS 的默认行为。但是在我的原始包中,我不知何故搞砸了,让输入中的每一列都映射到错误输出中的一列。然后出现了问题,因为 SSIS 正在做日期转换的事情。

无论如何感谢您的帮助。

于 2013-02-18T11:10:52.050 回答
0

您始终可以使用派生列并使用日期的部分格式化日期时间。

(DT_WSTR, 20) (DT_WSTR, 2) RIGHT("0" + (DT_WSTR,2)MONTH(<DATE_IN_QUESTION>),2)  + "/" + 
(DT_WSTR, 2) RIGHT("0" + (DT_WSTR,2)DAY(<DATE_IN_QUESTION>),2) + "/" + 
(DT_WSTR,4)YEAR(<DATE_IN_QUESTION>) + " " + 
(DT_WSTR, 2)DATEPART( "Hh", <DATE_IN_QUESTION>) + ":" +  
(DT_WSTR, 2)DATEPART( "mi", <DATE_IN_QUESTION>) + ":" +  
(DT_WSTR, 2) RIGHT("0" + (DT_WSTR, 2)DATEPART( "ss", <DATE_IN_QUESTION>),2)    
于 2013-02-15T18:15:54.850 回答