【发布时间】:2019-08-27 06:00:50
【问题描述】:
如何使用 ssis 包仅将多个文件中的 id 和 name 列加载到 sql server 中?
每个文件都有不同的结构,但是这两个必需的列在所有文件中都可用。每个文件的列顺序不同。
源文件文件夹是:D:\SourceFolder
文件如下:
File1 Name : Emp_20190102
Emp_20190102 File data :
id,sal,deptno,name
1,100,10,h
File2 Name : Emp_20190102_1
Emp_20190102_1 File data :
id,name,sal
11,ac,101
File3 Name : Emp_20190102_2
Emp_20190102_2 FIle Data
id,sal,name,deptno,loc
3,200,y,30,che
File4 Name : Emp20190102
Emp20190102 FIle Data:
id,sal,deptno,dname,flag,name
10,400,40,hr,1,un
这里我只想将id和name列信息加载到sql server表中。 sql表结构:
CREATE TABLE [dbo].[Emp](
[id] [int] NULL,
[name] [varchar](50) NULL
)
基于以上 4 个文件,我想在 emp 表中加载数据
id |Name
1 |h
11 |ac
3 |y
10 |un
这是我尝试过的:
step1 : 为文件夹名和文件名创建了 2 个变量 文件位置:D:\SourceFolder 文件名:Emp_20190102_1.txt
然后拖放 foreachloop 容器并选择 typeofenumerator : foreach fileenumerator 和变量映射:文件名变量 并在里面拖放平面文件源并配置源文件 之后为平面文件连接创建动态连接 然后拖放 oledb 目的地并进行配置
执行包后我得到不正确的结果。 这里我们应该只使用一个数据流任务来加载所有文件
你能告诉我如何在 ssis 中实现一个包来完成这个任务吗?
【问题讨论】: