2009-01-19 53 views
0

我试图提取子字符串trackingCode到定界符的点~~。 因此,例如:这ssis数据流转换正确吗?

www.test.com~~34235645463544563554

我希望返回:

www.test.com

我使用:

SUBSTRING(trackingCode,1,FINDSTRING(trackingCode,"~~",1) - 1)

但它不工作,我得到一个错误:

错误:0xC0049067 at aw从文件导入,派生列[1562]:评估函数时发生错误。

有什么想法吗?如果我用数字替换FINDSTRING,那么它就可以工作。

回答

2

您的数据可能不符合您的期望。

信任但验证。

我会避免衍生的列转换,除了你知道的(通过直接测试)将始终符合预期的数据上的微不足道的转换。这些公式很难在派生列xforms中以单行格式读取,并且您得到的控制很少,并且能够尝试不同的分析选项以及很少的故障/恢复模式。

我会为此推荐一个脚本任务。您可以路由不符合其他路径的行,并使用数据查看器查看它们正在发生的事情。

0

你确定每一行都有尾号吗?如果没有,像这样的东西可能会有所帮助:

SUBSTRING(trackingCode+"~~",1,FINDSTRING(trackingCode,"~~",1) - 1) 
+0

问题似乎是 “-1” 的一部分。我无法找到分隔符的开头并返回一个空格。 – thiswayup 2009-01-19 16:40:24

1

这应该工作:

SUBSTRING([trackingCode],1,(FINDSTRING([trackingCode],"\~~",1) - 1))