日期:2014-05-17  浏览次数:20462 次

ssis将sql的表中的部分数据按一定格式导出到csv文件中
想将sql数据库中表的一列数据导出到csv文件中。
请问在ssis里可以实现吗?

csv文件如下所示

20120224;151214;(这行是生成文件的时间)
TEST;20120225;20120224;1630;(这行是文件作者,生成文件时间的后一天和生成文件时间,1630是固定的,都用分号隔开)
EDP1;0;;(此行内容固定)
PA;后面是sql中的一列数据,按顺序导出并用分号隔开。(PA;固定的,后面加sql数据)
下面各行内容也是固定的
PP;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
PS;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
EDP2;0;;
PA;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
PP;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
PS;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
EDP3;0;;
PA;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
0;0;0;0;
PP;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
PS;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
<EOF>


------解决方案--------------------
declare @s varchar(max)

select @s = isnull(@s+';','')+col from ta
------解决方案--------------------
用loop就可以了!
loop Task之前把csv前两行写入;
loop块 写入EDPn数据块
loop结束后写入文件结束标识