我正在使用SQL 2008r2 SSIS。在尝试处理可能具有不同列数的日志文件时,我决定将所有数据读入一列,然后解析该列。
我遇到的问题是我收到错误:
列"列0和#34;的列分隔符;找不到。
这让我相信它没有到脚本组件来解析列。
有没有人有任何想法?
标题行 - 最多50个字符的文本字段
详细信息行 - 最多50个字符的整数和文本字段
原始规格 - 长达64列
新规格 - 可以是19或26或64或未知
解析代码:
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
//Split Input string into string array
string[] allValues = Row.Column1000.Split(',');
int i = 0;
//known Rows
Row.Column0 = allValues[i++];
Row.Column1 = allValues[i++];
Row.Column2 = allValues[i++];
Row.Column3 = allValues[i++];
Row.Column4 = allValues[i++];
Row.Column5 = allValues[i++];
Row.Column6 = allValues[i++];
Row.Column7 = allValues[i++];
Row.Column8 = allValues[i++];
Row.Column9 = allValues[i++];
Row.Column10 = allValues[i++];
//variable values - if column exists
Row.Column11 = allValues.Length > i ? allValues[++i] : null;
Row.Column12 = allValues.Length > i ? allValues[++i] : null;
Row.Column13 = allValues.Length > i ? allValues[++i] : null;
// etc
Row.Column64 = allValues.Length > i ? allValues[++i] : null;
}