SSIS为每个详细信息行创建带标题行的文本文件

时间:2015-02-26 18:47:04

标签: ssis

我需要生成一个文本文件,每个细节行都有一个标题行,如下所示。

头| 123

详细| QWE | 123 | 234A | AAA

头| 123

详细| QWE | 123 | 234B | AAA

我如何在SSIS中执行此操作?

1 个答案:

答案 0 :(得分:0)

在SSIS中没有直接的方法可以做到这一点。相反,如果您有任何unique_id来区分每个详细信息行,则可以从源Query Query存储过程本身返回所需格式的输出。

示例 -

--Source table for Detail Rows -
CREATE TABLE SourceTable
    (
      id int primary key,
      col1 varchar(50),
      Col2 varchar(50)
    )
GO

--Sample Source Procedure to get data -
    Create Procedure dbo.SourceProc
as 
BEGIN

    SELECT
        Id,
        RecordType,
        DetailsRow
    FROM
    (    
        SELECT 
            id,
            2 as RecordType,
            CONVERT
            (
               VARCHAR(200),
                  'Detail|' + convert(varchar(5),id) +'|'
                  +col1+'|' + col2
            )as DetailsRow
        FROM
            SourceTable

        UNION ALL

        SELECT
            Id,
            1 as RecordType,
            CONVERT(varchar(200), 'Head|123') as DetailRow
        FROM
            SourceTable
    )as A
    Order by Id, RecordType
END
  • 您可以将此过程添加为OLEDB源的源,并且只能使用DetailsRow作为源的输出列。

  • 然后,您可以在文件中创建只有一列长度为200的平面文件连接管理器(这是上面的示例查询),并在平面文件目的地中使用它。