SQL 2008r2 SSIS を使用しています。列数が異なる可能性があるログ ファイルを処理しようとしているときに、すべてのデータを 1 つの列に読み取ってから、その列を解析することにしました。
私がぶつかっている問題は、エラーが発生していることです:
列「列 0」の列区切り文字が見つかりませんでした。
これにより、列を解析するスクリプト コンポーネントに到達していないと思われます。
誰にもアイデアはありますか?
ファイル構成
ヘッダー行 - 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;
}