2011-04-11 125 views
0

我有一个SSIS包,它将数据从文本文件复制到sql server中的表中。如何从SSIS中的varchar中删除前缀数字?

我用3个任务为同1)Flatfile文件源2)派生列任务,3)SQL目标任务

在第三task..I指定表...到我所复制数据。

在那个目标表中有一个列DESC ..它是varchar类型的,而平面文件包含这个列的数据如下: - “01 planA”..“04 plan C”,“ PlanJ”。

我需要删除这些前缀数字。我有一个查询如下..但我可以使用派生列任务..因为SSIS不会支持PATINDEX。

SUBSTRING([DESC], PATINDEX('%[a-zA-Z]%',[DESC]), LEN([DESC])- PATINDEX('%[a-zA-Z]%',[DESC])+1) 

请帮帮我。

回答

1

您可以使用正则表达式在脚本任务中执行此操作。您需要引用System.Text.RegularExpressions,然后使用.NET Regex对象来模拟Input0_ProcessInputRow方法中的上述代码。

或者,将原始数据首先发送到SQL登台表并使用PATINDEX从那里提取,如示例中所示,然后将清理后的版本推送到目标表。

+0

您的表达意味着什么?我可以在SSIS中使用温度表吗? – Relativity 2011-04-12 17:31:41

相关问题