2014-01-16 49 views
0

我有一個文本文件,其中包含多個表數據(不同的列數)。我將整行作爲一列導入。基於條件拆分,行被分散到正確的流。我使用腳本組件將單列值(行)拆分爲該表的正確列,並將其作爲輸出列。所有這些工作正常,數據看起來很好。使用以前的數字列值填充的空數字列

我的問題帶有一些數字字段。當數字字段中沒有值時,它將以另一列的數值結束於表中。

我已經把數據查看器放在了任何地方,其中沒有一個數據列應該是空的。當我查看錶格時,它是來自另一列的數據。

  • 這不是映射,我查了十幾遍。
  • 這不是名稱是相同或類似的。
  • 根據加載過程中的任何位置的數據查看器沒有數據。
  • 任何地方都沒有隱藏的代碼。
  • 我下垂並重新創建了桌子。
  • 我顯示一個消息框與列(應該是空的)分配「列值」,並沒有數據,如預期的。
  • 我使用了一個派生列,結果相同,數據查看器中沒有數據,但是表中的結果數據。

我還用這些數字字段作爲varchar創建了另一個測試表。當我這樣做時,列是空的(如預期)。當我將其更改爲數字時,該字段再次填充。 (如果這是我能理解的另一種方式)。

這可能是什麼原因?這讓我瘋狂。

編輯

Script代碼:

//C# 
public override void Input0_ProcessInputRow(Input0Buffer Row) 
    { 
    ASCIIEncoding enc = new System.Text.ASCIIEncoding(); 
    char[] seperator = { '|' }; 
    Byte[] ByteBlob; 
    String[] ColumnValue; 
    ByteBlob = Row.Column0.GetBlobData(0, (int)(Row.Column0.Length)); 
    ColumnValue = enc.GetString(ByteBlob).Split(seperator); 
    Row.OutputColumn0 = ColumnValue[0]; 
    Row.OutputColumn1 = ColumnValue[1]; 
///etc 

只給它用來做什麼的例子,這是一個行會是什麼樣子的SENCE。

列名:

來源|表名|值1 |值2 |說明|值3 |廣告描述|值4

實際數據:

ABC |收入| 123456 | 729537 | MisterX ||無|

數據表:

ABC |收入| 123456 | 729537 | MisterX | 729537 |毫無| 729537

+0

請問您可以發佈腳本組件代碼嗎? – Jayvee

+0

在編輯中添加。 –

回答

1

嘗試使用Row.ColumnX_IsNull,例如,如果(Row.Column0_IsNull){youroutputcolumn = NULL} else {...}

+0

謝謝。這確實提供了所需的結果。我仍然希望有一個行爲的探索。 –