最近半道接手了一个项目需要使用CSVtoSQL,因为关于SSIS包这个东西是别人已经创建好了的,但不相识,所以接手后就决定自己研究一下,创建SSIS包时,在Foreach循环容器的设置上抠破脑门,网上关于这方面的教程有好几个,不算多,步骤详细的就更少了,即便步骤详细的,拿到我电脑上也就不好使了,可能是版本的原因。不过其中的变量的因素是大家容易忽略的。后来看了下微软官方的文档:https://docs.microsoft.com/zh-cn/sql/integration-services/integration-services-tutorials?view=sql-server-ver15,再加上模仿现有的SSIS包,才弄成功了。

为了自己留个笔记,也为了帮助后来的朋友,决定写个在关键环节上详细一点的步骤和解说。

我的SSDT是2010独立版本的(不用随附到VS上),版本跨度不大的话,操作和使用上变化应该也不会大。

前面几个简单的步骤就不讲解了。

  • 新建OLE DB连接管理器
  • 新建包
  • 拖入foreach循环容器组件
  • 拖入数据流任务组件
  • 设置foreach循环容器

下图中,在变量映射中新建一个空值变量,注意是空值变量,然后进入仅修改名称或者命名空间即可

  • 将数据流任务拖入foreach循环容器,并新建和设定平面文件连接管理器(重点!)

最好是在此处新建平面文件连接管理器,因为在顶部工具栏里建的感觉有时候总会出错

接下来,去文件夹中选中任意一个文件(此处是为了让连接管理器先确定列名和数据类型),并选定好合适的编码(一般都是UTF8吧,反正从平面文件开始,到包设定,再到数据库,编码要始终一致,虽然也可以不是UTF8)

点击“列”,不做任何操作,但是要走一遍流程,以便让其加载数据类型

接下来是高级,依次设定每一项的数据类型和数据长度,DT_STR是非UTF8的字符串,此处需要改成UTF字符串类型:DT_WSTR,关于SSIS数据类型与数据库数据类型的对应关系,大家可以去网上查一查。

另外,这个页面下方虽然有“建议类型”,但通常不准确,尤其是在导入文件数据量较少的情况下,因此这里必须手动修改。

修改完了,点击确定。

然后接下来,重新打开平面文件连接管理器,因为我们的目的是要遍历文件夹内所有文件,刚才只选了一个文件,因此我们需要将文件名去掉,仅保留文件夹路径和文件后缀名,就像下面这样。再确定。

在之前的步骤中,我们在foreach循环容器新建了一个空值变量。那个是给循环容器遍历文件名赋值用的。这里还有再建一个变量,点击顶部菜单栏的“SSIS”,变量数据类型:String,文件夹路径设为变量值。

此处文件路径后的“\”不能少,否则你会在接下来的“计算表达式”的步骤中看到例如 C:\工作\en\test_txt.txt,而正常的表达式应该是 C:\工作\en\test_txt\.txt。

然后点击平面文件连接管理器,打开属性,找到“Expression”,点击后面的三个小点。

现在,平面文件链家管理器算是设置好了。

  • 拖入平面文件源和OLE DB目标,并设定好之后就可以遍历所有文件内容了

职场新人,初次发表文章,如有讲解不足之处,欢迎大家指正。

SSIS之Foreach循环容器(文件枚举器)遍历文件(关键点 详细步骤 图文讲解)相关推荐

  1. LEADTOOLS 入门教程: 使用文件观察器转换文件 - C# .NET Core

    LEADTOOLS 是一个综合工具包的集合,用于将识别.文档.医疗.成像和多媒体技术整合到桌面.服务器.平板电脑.网络和移动解决方案中,是一项企业级文档自动化解决方案,有捕捉,OCR,OMR,表单识别 ...

  2. Github 之 本地上传代码到 Github ,并且添加 .gitignore 文件 屏蔽一些文件上传(内附详细步骤)

    Github 之 本地上传代码到 github ,并且添加 .gitignore 文件 屏蔽一些文件上传(内附详细步骤) 目录 Github 之 本地上传代码到 github ,并且添加 .gitig ...

  3. 基础【循环】-----(枚举器)------(转)

    Iterator:枚举器 如果你正在创建一个表现和行为都类似于集合的类,允许类的用户使用foreach语句对集合中的成员进行枚举将会是很方便的.这在C# 2.0中比 C# 1.1更容易实现一些.作为演 ...

  4. c++语言循环读写文件夹,C++遍历文件夹下所有文件的多种方法

    为数不多的好用的代码,遍历文件夹获取所有子文件名,"filespec"可用通配符"*?".注意如果用相对路径的话,获取所有文件名后应再调用SetInitDir将 ...

  5. php遍历文件夹下文件内容_php遍历文件夹下所有文件的代码示例

    本篇文章给大家带来的内容是关于php遍历文件夹下所有文件的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 不论是面试还是正常工作需要都会用到遍历文件夹下的所有文件,今天就记录 ...

  6. php打包签名apk文件在哪,Android_android应用签名详细步骤,1、准备工作apk的签名工作可以 - phpStudy...

    android应用签名详细步骤 1.准备工作 apk的签名工作可以通过两种方式来完成: 1)通过ADT提供的图形化界面完成apk签名: 右键项目--> Android Tools -->E ...

  7. wamp下配置php文件,wamp开发环境快速搭建详细步骤

    简介:总结在Windows环境搭建PHP开发环境(Apache+PHP+MySQL) 安装Apache 2.解压压缩包,最好放到磁盘根目录,不然配置时容易报路径错误,我这里改了文件夹名,方便以后配置, ...

  8. python遍历读取文件夹下所有文件内容_python遍历文件夹下所有文件

    python遍历文件夹下所有文件的方法:首先打开相应的代码文件:然后通过"for f in files:print(os.path.join(root, f))"方式遍历所有的文件 ...

  9. java arraylist枚举器遍历_Java基础(七)泛型数组列表ArrayList与枚举类Enum

    一.泛型数组列表ArrayList 1.在Java中,ArrayList类可以解决运行时动态更改数组的问题.ArrayList使用起来有点像数组,但是在添加或删除元素时,具有自动调节数组容量的功能,而 ...

最新文章

  1. SVO中 Inverse Compositional Image Alignment方法的学习笔记
  2. 简述php中文件上传过程,简单php文件上传详细说明
  3. [转]如何提升你的沟通技巧
  4. physx选择显卡还是cpu_预算有限,该侧重CPU还是显卡?中高端游戏主机这样配
  5. Google高性能RPC框架gRPC 1.0.0发布
  6. python中的类装饰器应用场景_这是我见过最全面的Python装饰器教程了!
  7. Confluence 6 管理协同编辑 - 最大编辑者的限制
  8. C#中 类和结构 值类型和引用类型以及 值传递和引用传递
  9. 树言树语:AIR的 应用方向在哪里?
  10. Docker学习总结(28)——Docker 容器健康检查机制
  11. 计算机丢失lib.dll,libprotobuf.dll
  12. 电平转换电路_RS232电平和TTL电平有什么不同?如何转换?
  13. 边缘计算白皮书_区块链+边缘计算技术白皮书(2020年)
  14. CSS块元素与内联元素(转)
  15. indesign排版标点挤压_indesign排版标点挤压设置技巧
  16. Ubuntu 20.04安装搜狗输入法(图文详解)
  17. 【Windows】外接USB键盘报“无法找到驱动”——手动指定驱动
  18. 10年的工作经验?还是1个经验反复用了10年?
  19. 单片机遥控开关mos管
  20. 云计算的未来:看「泛在计算」如何促进数字化生态和计算网络融合

热门文章

  1. 3dsmax-角色骨骼
  2. 编译型语言和解释型语言的区别总结
  3. ai人工智能_人工智能已经如何统治世界
  4. 分布式与微服务——Iaas,Paas和Saas、单体应用和缺点、微服务概念、传统 分布式 SOA 架构与微服务架构的区别、微服务实战、什么是RPC、CAP定理和BASE理论、唯一ID生成、实现分布式
  5. cf-1327F. AND Segments
  6. 活动图的制作非常简单,只需5个步骤即可完成精美互动图!
  7. 等级考试三级(分形盒)
  8. 2021鹅厂产品管培生宣讲会干货总结
  9. 天地图-第五篇-覆盖物
  10. 移动web开发—— rem布局