SSIS之“查找” 组件(功能解释 细节 图文 数据讲解)

本文详细介绍了使用SSIS(SQL Server Integration Services)的查找组件,通过对比源数据和目标数据,实现数据导入数据库的功能。具体步骤包括配置OLEDB连接、平面文件连接、设置查找条件等,确保数据的一致性和完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对比源数据和目标数据,对设定查找条件进行查找,相同查找条件的数据放一堆,不同的放另一堆。
今天我通过一个简单的例子来讲解:从一个新的逗号分隔符格式的TXT文件里的数据,通过查找组件,将数据导入到数据库中。
首先,把基础组件搭好:OLE DB连接管理器、平面文件连接管理器、TXT文件的字段和数据类型要和数据库保持一致(这里虽然说TXT文本内无法定义数据类型,但你总不能比如数据库里的age字段为int类型,而TXT字段下方对应的数据却是中文,这样是不行的)。
比如我的是这样的——

下图是我现有的数据库表设计及数据

数据库表
然后这个是我现有的分隔符格式的TXT文本数据
TXT文本数据
这里可以看出,数据库表里的这条数据和TXT文本数据里已有的其中一条数据相同,和另外一条数据不同,而不同之处仅仅是性别字段数据不同,name字段数据还是相同的。
那我现在添加查找组件。
然后双击打开——
在这里插入图片描述
此处一定要将选项选择为“将重定向到无匹配输出”,别问我为什么,我也不知道,不过这个也没什么好讲的,虽然它的默认选项不是这个,但我们的日常操作默认的都是这个。
接下来是连接——
在这里插入图片描述
接下来是列——
在这里插入图片描述
点击确定出来。
此处连线连接的两个字段都是两端数据的name字段,是将name字段作为对比条件,看是两端数据中的name字段数据是否有相同的。
然后接下来添加OLE DB目标。然后将“查找”组件的蓝色连线连接至OLE DB目标上,此时会弹出窗口。
在这里插入图片描述
这里我选的是“查找无匹配输出”。然后设置OLEDB目标。
在这里插入图片描述
多余的列可以直接忽略。
就像下面这样——
在这里插入图片描述
然后点击确定出来。
现在来讲接下来的操作会发生什么。
我选择的是查找无匹配输出。“无匹配”就是“不相同”的意思。查找两端那个要对比的字段的数据,目标数据库表里没有,而源数据里有的数据,则会被插入至目标数据库中。
因为我上面的两端数据是name一样,但是sex字段有不一样的,所以这里我更改查找字段为sex。
然后无匹配查找运行后——源数据有两条,但是只有一条sex字段不一样的,所以只输出了一条数据至目标数据库表中。
在这里插入图片描述

现在我们来看下,数据库表中确实新增了那条不一样的数据——
在这里插入图片描述
而如果选择查找匹配输出,则查找两端那个要对比的字段的数据,源数据和目标数据库表里的,这个字段数据相同的数据,则都会被插入至目标数据库中,同时那个新增字段在这里也要发挥作用了,这个新增字段也会被插入到目标数据库表中。所以当选择“查找匹配输出”时,要注意“OLEDB”组件中的映射关系必须要对应好。
下面我更改为匹配输出,运行——
在这里插入图片描述
因为初始数据库表和源数据中有一条数据相同,刚才无匹配输出过一次,所以在“查找匹配输出”之前,两端数据已经完全一样了,所以这里把sex字段相同的两条数据又从源数据中复制过去了,所以我们再查一下数据库——
在这里插入图片描述
数据合情合理。
至此,讲解结束,如有不正之处,欢迎大家指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

说话很地气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值