SSIS 脚本任务获取 csv 文件的行数
SSIS Script Task get row count of csv files
我正在使用 VS 2012\SQL SSIS。如何检索 csv 文件中记录的行数并将它们分配给变量 (RowCount) 以便稍后在流程中使用?我还需要从计数中排除 1,因为这将是 header.
列
但是,我不能只使用数据流任务、OLE 源然后使用行计数,因为我不知道文件名(或 csv 的标题)。我所知道的是至少会有行 header。到目前为止,我有一个 FOR EACH 循环容器,它查看特定文件夹,然后将文件名分配给变量“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] 的变量,它有一个地方可以识别变量的只读集合以及变量的Read/Write 集合。将其添加到 ReadWrite 集合。
在您的实际代码中,您会将计算的行数分配给 SSIS 变量的 .Value
属性。
Dts.Variables["RowCount"].Value = strArr.Length -1;
我正在使用 VS 2012\SQL SSIS。如何检索 csv 文件中记录的行数并将它们分配给变量 (RowCount) 以便稍后在流程中使用?我还需要从计数中排除 1,因为这将是 header.
列但是,我不能只使用数据流任务、OLE 源然后使用行计数,因为我不知道文件名(或 csv 的标题)。我所知道的是至少会有行 header。到目前为止,我有一个 FOR EACH 循环容器,它查看特定文件夹,然后将文件名分配给变量“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] 的变量,它有一个地方可以识别变量的只读集合以及变量的Read/Write 集合。将其添加到 ReadWrite 集合。
在您的实际代码中,您会将计算的行数分配给 SSIS 变量的 .Value
属性。
Dts.Variables["RowCount"].Value = strArr.Length -1;