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

2023-05-16

对比源数据和目标数据,对设定查找条件进行查找,相同查找条件的数据放一堆,不同的放另一堆。
今天我通过一个简单的例子来讲解:从一个新的逗号分隔符格式的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字段相同的两条数据又从源数据中复制过去了,所以我们再查一下数据库——
在这里插入图片描述
数据合情合理。
至此,讲解结束,如有不正之处,欢迎大家指出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐