2013-04-24 43 views
1

我有一个来自应该是日期的文本文件的列,但可以是其他任何东西。使用派生列转换编辑器验证日期列

有时它来作为“NULL”,有时作为日期。

我想写在派生列转换编辑器的表达式验证:

  • 时,它的“NULL” - > NULL在DT_DATE
  • 时,它的日期 - >转换为日期
  • 时,它不是空或日期 - >添加到连接错误表

到目前为止我有:

MyColumn == "NULL" ? (DT_STR,255,1252)NULL(DT_DATE) : MyColumn 

我已经添加了一个脚本组件来捕获派生列错误输出,但它无法正常工作。当1行通过时,它不会将错误提交给错误表,将其余错误提交到输出表(以输出错误结束)。

不确定是做什么的。有什么建议么?

谢谢。

回答

1

试试这个: -

(MyColumn=="NULL")|| (ISNULL(MyColumn)) ? NULL(DT_DATE) : MyColumn 

更新1: -

(MyColumn=="NULL") || (MyColumn(Name)) ? NULL(DT_DATE) :(DT_DATE)MyColumn 
+0

感谢。忘了我认为源是varchar(255)。因此,无论如何都需要将其转换为dt_date。 – mikimr 2013-04-25 01:14:09

+0

感谢Parveen。试过这个,DCT编辑不喜欢'||'出于某种原因,所以不会建立。 – mikimr 2013-04-29 04:17:34

+0

上述表达式在SSIS中的“派生列”中工作得很好 – praveen 2013-04-29 04:22:30