我需要生成一个文本文件,每个细节行都有一个标题行,如下所示。
头| 123
详细| QWE | 123 | 234A | AAA
头| 123
详细| QWE | 123 | 234B | AAA
我如何在SSIS中执行此操作?
答案 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的平面文件连接管理器(这是上面的示例查询),并在平面文件目的地中使用它。