簡體   English   中英

SSIS 腳本任務獲取 csv 文件的行數

[英]SSIS Script Task get row count of csv files

我正在使用 VS 2012\SQL SSIS。 如何檢索 csv 文件中記錄的行數並將它們分配給變量 (RowCount) 以供稍后在該過程中使用? 我還需要從計數中排除 1,因為這將是 header 列。

但是,我不能只使用數據流任務、OLE 源然后是行數,因為我不知道文件名(或 csv 的標題)。 我所知道的是至少會有 header 行。 到目前為止,我有一個 FOR EACH LOOP 容器,它查看特定文件夾,然后將文件名分配給變量“FileNameFound”。 如何配置腳本任務,然后將 RowCount 分配給變量“RowCount”?

在此處輸入圖像描述

到目前為止,在我的腳本任務(C#)中,我已經嘗試了以下內容,只是為了使用消息框進行測試

public void main()
{
        string strPath = Dts.Variables["FileNameFound"].Value.ToString();
        string[] strArr = File.ReadAllLines(strPath);
        //MessageBox.Show(strArr[0]);
        MessageBox.Show("Total Records " + strArr.Length.ToString());

        Dts.TaskResult = (int)ScriptResults.Success;
}

如何將計數的記錄分配給 SSIS 變量“RowCount”?

如何在腳本任務中為 SSIS 變量賦值?

假設您在腳本任務配置頁面中有一個名為@[User::RowCount] 的變量,它有一個位置來標識變量的只讀集合以及讀/寫變量集合。 將此添加到 ReadWrite 集合。

在您的實際代碼中,您將計算的行數分配給 SSIS 變量的.Value屬性。

Dts.Variables["RowCount"].Value = strArr.Length -1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM