2009-01-19 84 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))