0

我有一个 excel 文件,其中包含由 2 个空行分隔的一堆数据。我需要将这 2 个数据集分成两个 CSV 文件。因此,在 SSIS 数据流中,我选择了“Excel Source”下的“Conditional Split”和“Flat file destination”。问题是如何设置拆分来完成这项工作?

Excel 数据示例:

服务器名称 | 初级SA | 二级
SA srv1 | SA1 | SA1
伺服器 | SA2 | SA2
srv3 | SA3 | SA3
空行 | |
空行 | |
srvA | SAa | SAa
srvB | 抗体 | SAb
服务 | SAc | 囊肿

4

1 回答 1

0

解决方案1:

1.1 创建阶段表:

CREATE TABLE [dbo].[Stage]
(
    [RowID] [int] IDENTITY(1,1) NOT NULL,
    [Server_name ] [varchar](50) NULL,
    [PrimarySA ] [varchar](50) NULL,
    [SecondarySA ] [varchar](50) NULL
) ON [PRIMARY]

2.2 DFT1 - 加载数据。来源:XL 文件,目的地:舞台表

2.3 DFT2 - 源

SELECT [RowID]
      ,[Server_name ]
      ,[ PrimarySA ]
      ,[ SecondarySA ]
FROM [dbo].[Stage]
WHERE 
    RowID < (SELECT MIN (RowID) 
             FROM [dbo].[Stage] where [Server_name ] = 'empty row '
             )

Destination: A new flat file File1

2.4 DFT 3:来源:

 SELECT [RowID]
      ,[Server_name ]
      ,[ PrimarySA ]
      ,[ SecondarySA ]
 FROM [dbo].[Stage]
 WHERE RowID > (SELECT MAX (RowID) from [dbo].[Stage] where [Server_name ] = 'empty row ')

Destination: Another flat file - File2

解决方案 2:在脚本任务中执行。阅读每一行,检查行的长度或内容。如果未找到空行,则写入文件 1。如果找到空行,则关闭第一个文件,打开一个新的输出文件并写入该文件。

这将需要更多的编程知识,但能够处理具有多个“空行”的文件。如果您需要此解决方案(并且遇到问题),请告诉我们;我或其他人会帮助你。

于 2013-03-01T20:14:15.717 回答