SSIS2012 Export Column (导出列) 和 Import Column(导入列)的使用方法详解

浏览: 2802

开篇介绍

在实际项目中也会遇到把文件路径的图片存入数据库中或者把存入数据库的图片数据输出成图片文件。这篇文章将会详细介绍ssis中的Export Column和Import Column。

1.Export Column案例实现步骤

解释:导出列转换是将数据流导出到文件中的转换,与其他转换不同,导出列转换不需要在目标中创建文件。

a.以AdventureWorkDW数据库中DimProduct表为例,其中LargePhoto字段存储的是图片类型数据。把改数据输出到文件中成图片。

Clipboard Image.pngClipboard Image.png

b.OLEDB源连接AdventureWorkDW库中的DimProduct,很简单,OLEDB源具体配置就不介绍了。托一个派生列的控件,派生列名为filename,作为新的派生列,表达式生成的是数据转换后存放的位置,名称是DimProduct表中主键ProductKey来命名的,配置如下:

   "G:\\Export\\" + (DT_WSTR,50)ProductKey + ".gif" --表达式

Clipboard Image.png

c.导出列控件配置,提取列选择要转换的LargePhoto。

允许追加:如果文件存在,是否应该将输出附加到现有文件。

强制截断:如果文件存在,重写现有文件。(一般选这种)

编写字节顺序标记:如果数据类型为DT_NTEXT或DT_WSTR, 是否将字节顺序标记写入文件。

Clipboard Image.png

配置完成,执行结果.

Clipboard Image.pngClipboard Image.png


2.Import Column案例实现步骤

a.与Export Column是一个互逆操作,但是配置不同,这里简单的实现一个案例

Clipboard Image.png

 新建一个txt文件,命名为filelist ,里面存放图片文件路径作为单独的一列,列名为ImageFilePath,以filelist作为平面文件源,跳过平面文件源的配置如图所示

Clipboard Image.png

b.导入列的配置,在输出选项,勾选ImageFilePath作为输入列

Clipboard Image.png

在输入属性和输出属性选项卡中,新增输出列,命名为myImage,类型为图片格式,如图所示:

Clipboard Image.png


注意:输出列的myImage的ID属性要被引用,所以输入列中ImageFilePath的FileDataColumnID要与其一致。

这里myImage的ID是29,所以FileDataColumnID设置为29

Clipboard Image.png


c.在数据库中创建一张表存放图片数据和路径,配置OLEDB目标连接管理器连接表。

   create table tmpImage
(
filepath varchar(50) not null,
fileimage image
)

执行结果成功,图片顺利存入数据库,如图所示:

Clipboard Image.pngClipboard Image.png


总结:

这种需求不会经常出现,但是一旦出现,就会发现用这种操作方便高效很多。

导出列的配置比较简单,导入列的配置关键是:

一.文件路径存放为一列。

二.输入列对输入出列的引用,输入列的FileDataColumnID要与输出列的ID保持一致。



推荐 0
本文由 粽子job 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册