加载平面文件/将文件名添加到 table 列
Loading flat files /adding filename to table column
我正在尝试将大量平面文件加载到 sql table 中,并将文件名列添加到 table.
在控制流中,我有 2 个 foreech 循环获取文件名并将它们传递给 2 个变量。
这就是我在数据流中遇到问题的地方,我首先将平面文件源指向派生列,然后指向 OLE DB 目标......在 OLE DB 目标中它识别我的文件名派生列,但是当我 运行 包时它执行得很好它只是创建 table,它不会插入平面文件数据或来自 2 个变量的文件名
无法在同一个 DataFlow Task
中读取变量值更改。您必须编写一个表达式,在 ForEach Loop container
内的 Script Task
或 Expression Task
中获取目标 Table 名称,然后将此任务连接到 DataFlow Task
。请注意,您必须将 DataFlow Task
的 Delay Validation
设置为 True
。
平面文件源有一个特殊的 属性 目的是为您提供文件名:
- 右键单击平面文件连接管理器并转到高级属性。
- 在组件属性选项卡中,转到自定义属性> FileNameColumnName 并输入名称,即 FileName
- 点击确定保存更改后,FileName 列将添加到输出缓冲区,这可以映射到数据流中。
我正在尝试将大量平面文件加载到 sql table 中,并将文件名列添加到 table.
在控制流中,我有 2 个 foreech 循环获取文件名并将它们传递给 2 个变量。
这就是我在数据流中遇到问题的地方,我首先将平面文件源指向派生列,然后指向 OLE DB 目标......在 OLE DB 目标中它识别我的文件名派生列,但是当我 运行 包时它执行得很好它只是创建 table,它不会插入平面文件数据或来自 2 个变量的文件名
无法在同一个 DataFlow Task
中读取变量值更改。您必须编写一个表达式,在 ForEach Loop container
内的 Script Task
或 Expression Task
中获取目标 Table 名称,然后将此任务连接到 DataFlow Task
。请注意,您必须将 DataFlow Task
的 Delay Validation
设置为 True
。
平面文件源有一个特殊的 属性 目的是为您提供文件名:
- 右键单击平面文件连接管理器并转到高级属性。
- 在组件属性选项卡中,转到自定义属性> FileNameColumnName 并输入名称,即 FileName
- 点击确定保存更改后,FileName 列将添加到输出缓冲区,这可以映射到数据流中。