我有一个文本文件,其中包含多个表格数据(不同的列数)。我将整行导入为一列。基于条件拆分,行被分散到正确的流程。我使用脚本组件将单个列值(行)拆分为该表的正确列,并将其作为输出列。所有这一切都运行良好,数据看起来很好。
我的问题来自一些数字字段。当数字字段中没有值时,它会在表格中以另一列的数字值结束。
我已将数据查看器放在任何地方,其中没有一个列的数据应为空。当我查看表格本身时,它是来自另一列的数据。
我还创建了另一个测试表,其中这些数字字段为varchar。当我这样做时,列是空的(如预期的那样)。当我将其更改为数字时,将再次填充该字段。 (如果是我能理解的另一种方式)。
这有什么理由?这让我疯了。
修改
脚本代码:
//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
只是举一个它的作用的例子,这就是一行中的行。
列名:
来源| TABLENAME |值1 |值2 |说明|值3 |说明2 |值4
实际数据:
ABC |收入| 123456 | 729537 | MisterX ||无|
表格中的数据:
ABC |收入| 123456 | 729537 | MisterX | 729537 |毫无| 729537
答案 0 :(得分:1)
尝试使用Row.ColumnX_IsNull,例如if(Row.Column0_IsNull){youroutputcolumn = null} else {...}