我正在BIDS(SSIS 2008)中工作。我有一個非常簡單的數據流任務,將一個平面文件導入OLE DB表。平面文件有10列,它們都映射到表格中的相應列中。平面文件列分隔符是管道字符,行分隔符是{CR} {LF},並且它沒有標題。在平面文件源上,我將Error和Truncation中的違規行(針對所有10列)重新指向錯誤輸出平面文件。SSIS:不要導入沒有正確列數的行
我每天都在運行這個數據流任務,但我不能保證每個記錄的平面文件總是有10列。所以,由於SSIS有壞習慣(至少在我看來)使用行分隔符作爲最後定義的列的列分隔符,它會嘗試合併行。這意味着如果我的列數不足,那麼並非所有行都將作爲表中的單獨行導入。這也意味着有問題的行不一定會寫入錯誤輸出平面文件。
目前只有兩種情況是(1)文件將具有所需的列數和(2)文件的列數不足。我還沒有看到具有比預期更多列的文件。由於這個文件是在我的單元測試過程中使用的,我不想預先處理文件以獲得正確數量的列。我想讓有問題的行寫入錯誤輸出平面文件(或者,如果不是錯誤輸出平面文件),至少要寫入其他平面文件,而不能導入。我仍然想要導入具有正確列數的行。我怎樣才能做到這一點。