Sql server 此ssis数据流转换正确吗?

Sql server 此ssis数据流转换正确吗?,sql-server,ssis,Sql Server,Ssis,我正在尝试将子字符串trackingCode提取到分隔符~~的位置。 例如: www.test.com~~34235645463544563554 我希望返回: www.test.com 我正在使用: SUBSTRING(trackingCode,1,FINDSTRING(trackingCode,~~”,1)-1) 但它不起作用,我得到一个错误: 错误:0xC0049067在aw从文件导入时,派生列[1562]:评估函数时出错。 有什么想法吗?如果我用一个数字替换FINDSTRING,它就会工

我正在尝试将子字符串trackingCode提取到分隔符~~的位置。 例如:

www.test.com~~34235645463544563554

我希望返回:

www.test.com

我正在使用:

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

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

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


有什么想法吗?如果我用一个数字替换FINDSTRING,它就会工作。

你确定每一行都有一个尾随数字吗?如果不是这样的话,类似这样的事情可能会有所帮助:

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

你确定每一行都有尾随数字吗?如果不是这样的话,类似这样的事情可能会有所帮助:

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

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

信任,但要验证

我将避免对数据进行派生列转换,但您知道(通过直接测试)这些数据总是符合预期的琐碎转换除外。在派生列xforms中,这些公式很难以单行格式读取,您几乎无法控制和尝试不同的解析选项,也很少有故障/恢复模式


我会推荐一个脚本任务。您可以将不符合不同路径的行路由到另一个路径,并使用数据查看器查看它们的情况。

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

信任,但要验证

我将避免对数据进行派生列转换,但您知道(通过直接测试)这些数据总是符合预期的琐碎转换除外。在派生列xforms中,这些公式很难以单行格式读取,您几乎无法控制和尝试不同的解析选项,也很少有故障/恢复模式

我会推荐一个脚本任务。您可以将不符合不同路径的行路由,并使用数据查看器查看它们的情况。

这应该可以:

子字符串([trackingCode],1,(FINDSTRING([trackingCode],“\~~”,1)-1))
这应该可以:


子字符串([trackingCode],1,(FINDSTRING([trackingCode],“\~~”,1)-1))

问题似乎是其中的“-1”部分。我找不到分隔符的开头并向后移动了一个空格。可能有些数据以~~分隔符肯定在字符串的末尾。我肯定会包含一个if语句来检查是否存在分隔符。问题似乎出在它的“-1”部分。我找不到分隔符的开头并向后移动了一个空格。可能有些数据以~~分隔符肯定在字符串的末尾。我肯定会包含一个if语句,用于检查是否存在分隔符。