ssis包,SSIS高级转换任务—导出列

好久没有写SSIS了,接着上回的Import Column,这个随笔学习Export Column,这个转换任务用来从数据库中的blob类型的列转换成文件保存到文件系统中或者在Microsoft Word文件或者Microsoft Paint文件中浏览。执行这个task的关键是要有一列包含文件的数据和要导出文件的路径。Export Column会将数据列转换成物理文件,并按照完全限定的路径保存这些文件。
在下面的例子中,将把数据库AdventureWorks中的一个文件列导出。如果你安装了数据库AdventureWorks,在这个数据库中有一个包含文件的表 [Production].[document],表中有一个包含word文件的列。现在将这一列文件数据导出。
  1. 创建一个文件夹C:\exports,导出的文件将放在这个文件夹中
  2. 新建一个包命名为ExportColumnExample,添加一个Data Flow task双击进入Control Flow界面
  3. 添加一个OLE DB Data Source,连接到AdventureWorks中的表[Production].[document]
  4. 预览这个表的数据,可以看到有一个列FileName包含很长一串文件路径和文件名,它们指定了文件的存放路径,我们可以把它修改成简单点的如C:\exports,如图6-12 ssis包,SSIS高级转换任务—导出列 图6-12
  5. 添加一个Derived Column任务将OLE DB DataSource和它连接起来。
  6. 编辑Derived Column,添加一个派生列NewFilePath,使用主键作为文件名,编辑表达式为"c:\\exports\\" + (DT_WSTR,50)DocumentID + ".doc"(注意这里要使用\\,因为要进行转义)。
  7. 添加一个Export Column转换任务,将Derived Column和它连接起来。Derived Column将会把输入流分成两个类别:可能是文件的一类,可能是文件名字的一类。
  8. 在Extract Column中选择Document,应为在表[Production].[document]中这一列是文件列,File Path Column中选择NewFilePath,应为这一列是通过Derived Column产生的文件路径。
  9. 选中Force Truncate,如果相同文件已经存在则覆盖掉,最后如图6-13 ssis包,SSIS高级转换任务—导出列 图6-13
  10. 执行报包,如图6-14,可以看到文件夹c:\exports\内已经有9个文件,如图6-15 ssis包,SSIS高级转换任务—导出列图6-14 ssis包,SSIS高级转换任务—导出列 图6-15
Tags:  ssis教程 ssis脚本 保存ssis包 ssis部署 ssis包

延伸阅读

最新评论

发表评论