SSIS平面文件目标在每个固定列值之后以逗号分隔(列的固定长度之后)

时间:2017-10-01 19:20:39

标签: sql sql-server ssis ssis-2012

我花了将近一天时间才找到解决方案,但到目前为止还没有运气。

问题在于: 在我的SSIS包中,我正在尝试将数据从SQL服务器表导出到具有固定长度选项后跟逗号的平面文件目的地。

Ex:  Account     Address          Zip
     123456    ,2525 Est dr     ,77077
     563       ,12 we dr        ,75023

如果您看到上面的示例,则帐户长度为10个字符,地址长度为16个字符。

所以我需要像这样写一个固定长度的平面文件,然后是逗号(换句话说,逗号应该在列之间)

但是在SSIS的平面文件目的地中,我无法同时设置固定长度和逗号分隔符。任何一个都在工作,但不是两个。

请告诉我选项,以获得此行为。

1 个答案:

答案 0 :(得分:2)

这是flatfile的奇怪架构,但还可以。设置要修复的flatfile。然后用尾随空格和逗号自己填充列。想到两种方法。

  1. 更新您的OLE DB Source组件以使用为您填充的SQL语句..

    SELECT 
        Account + REPLICATE(' ',10 - LEN(Account)) + ',',
        Address + REPLICATE(' ',16 - LEN(Address)) + ',',
        Zip + REPLICATE(' ',5 - LEN(Zip)) + ','
    FROM MyTable
    
  2. 使用Derived Column Transformation做类似的事情。