2015-09-13 126 views
0

幾乎兩個城市的故事...我有17000行數據作爲一對字符串在2列進來。每行總是有5個項目編號和5個項目單元計數(單元計數總是4個字符)。他們必須匹配單位和物品或者它是無效的。我正在試圖做的是「逆透視」字符串到各行 - 項目編號和項目單位ssis腳本任務丟失記錄

所以這裏有一個數據行的例子,兩列

  • 記錄ID列:0
  • 產品編號列:A001E10 A002E9 A003R20 A001B7 XA917D3
  • 項目單位柱:001800110002000300293

我寫了一個C#的Windows應用程序的測試工具來unpivot的數據到個人行,它工作得很好,花花公子。所以它基本上將數據轉化爲85,000行(5倍17,000)行並將其顯示給我,這是我所期望的網格(ID,項目編號和項目單位)。

  • 0 | A001E10 | 0018
  • 0 | A002E9 | 0011
  • 等等...

在我的SSIS的應用程序我添加了一個腳本任務來處理此相同的數據,基本上使用了我的測試工具使用相同的代碼。當我運行我的任務時,我可以看到它加載了17,000行,但它只在輸出上產生了15,000 +/-,所以顯然有些不對。

我在想,我沒有正確的腳本任務設置,即使它使用的是我的測試工具使用的相同代碼,因爲它由於某種原因正在刪除記錄。

如果我回到自己的任務並給它一個特定的記錄ID,它不會在第一遍中得到它,它將處理該ID並生成正確的輸出。所以這告訴我記錄是可以的,但由於某種原因,它錯過了它或者將它放在最初的過程中。也許與緩衝區有關?

+0

你在哪裏看到15,00條記錄?在BIDS的SSIS交互式窗口中?表中的實際記錄數是多少? –

+0

對不起...忘了說BIDS中的哪裏...是在腳本任務完成之後。然後,當我查詢目標表時,它與腳本任務結果的計數相同 –

+0

您是將數據流中的腳本任務用作轉換,還是將其作爲常規腳本任務用於控制流? – Vinnie

回答

1

嗯 - 我想通了。

我們有一個序列任務,其中包含大量並行運行的數據流任務。我們依靠引擎來優先處理數據提取並正確加載。但是,這個特定的腳本任務不會由該序列容器內的引擎正確處理。

線索是你可以在整個過程之外運行腳本任務本身,它工作正常。因此,我們將腳本任務從序列任務中拉出,並在序列任務之後自行放置,現在它正確運行。