0

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;
}
4

0 に答える 0