SSIS 动态地将行数放入平面文件目标表达式名称中
SSIS dynamically put rowcount in flat file destination expression name
我正在尝试动态创建文件名。
我能够获取日期,但我需要从 odbc 源读取的数据的行数。
我创建了一个名为 'rowcount' 的 int32 变量。在平面文件连接管理器 'connection string' 属性 的表达式中,我有以下内容:
"E:\path\" + (DT_WSTR,4)DATEPART("yyyy",GetDate()) + RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()) ,2) + RIGHT("0" + (DT_WSTR,2)DATEPART("dd",GetDate()),2) + "_" + (DT_WSTR, 20) @[User::rowcount] +".csv"
给出:
E:\folderpath151218_0.csv
但是当我 运行 项目时,它创建的文件名是 0 而不是行数。
如有任何帮助,我们将不胜感激。
谢谢
好的,问题是您的平面文件在 DataFlow 运行之前创建(并因此命名),此时您的 rowcount 变量仍然为零,因为它尚未填充。
处理此问题的唯一方法是在填充平面文件并获取行数后重命名平面文件。执行此操作的唯一方法是使用在数据流任务之后运行的脚本任务。
我正在尝试动态创建文件名。 我能够获取日期,但我需要从 odbc 源读取的数据的行数。
我创建了一个名为 'rowcount' 的 int32 变量。在平面文件连接管理器 'connection string' 属性 的表达式中,我有以下内容:
"E:\path\" + (DT_WSTR,4)DATEPART("yyyy",GetDate()) + RIGHT("0" + (DT_WSTR,2)DATEPART("mm",GetDate()) ,2) + RIGHT("0" + (DT_WSTR,2)DATEPART("dd",GetDate()),2) + "_" + (DT_WSTR, 20) @[User::rowcount] +".csv"
给出:
E:\folderpath151218_0.csv
但是当我 运行 项目时,它创建的文件名是 0 而不是行数。
如有任何帮助,我们将不胜感激。 谢谢
好的,问题是您的平面文件在 DataFlow 运行之前创建(并因此命名),此时您的 rowcount 变量仍然为零,因为它尚未填充。
处理此问题的唯一方法是在填充平面文件并获取行数后重命名平面文件。执行此操作的唯一方法是使用在数据流任务之后运行的脚本任务。