SSIS 导出 SQL 数据到固定宽度带行分隔符的文件

本文档介绍如何将 SQL Server 表数据或记录导出到带有行分隔符的固定宽度文本文件。

下面的屏幕截图显示了 Employee 表中的记录。

Employee Table

SSIS 导出 SQL 数据到固定宽度带行分隔符的文本文件

SSIS 数据流任务拖到控制流区域。有关更多数据加载选项,请访问 >> 单击此处

Add Data Flow Task to Package

双击打开数据流区域。然后,拖动 OLE DB 源并双击打开编辑器。接下来,单击“新建”按钮配置 OLE DB 连接管理器。在此,我们选择了当前的连接管理器,但您可以通过单击“新建”按钮(箭头指向处)来创建一个新的连接管理器。

Connect to Database Tables

在此示例中,我们选择 Employee 表。然后,转到“列”选项卡检查列,然后单击“确定”按钮。

Choose Employee Table from Database

拖动平面文件目标,并将 OLE DB 源连接到它。接下来,双击平面文件目标打开编辑器,然后单击“新建”按钮将平面文件格式选择为“固定宽度,带行分隔符”。

Choose Fixed Width with Row Delimiter option in SSIS to export SQL Server table data to flat file

单击“浏览”按钮创建新文件以存储记录。

create a new file for SSIS Export SQL Data to Fixed Width with Row Delimiters File

接下来,勾选“第一数据行包含列名”选项以复制标题。

checkmark the Column Names in the first data row

在“高级”选项卡中,将“输入列宽度”值进行修改以适应行项。为此,请检查每列的最大长度,然后将该值加到其中。

Change the InputColumnWidth value

转到 SQL Server Management Studio 并键入以下查询。请记住将 EmpID 替换为您自己的 SQL 列。

SELECT MAX(LEN(EmpID)) InputColumnWidth

为其余列更改“输入列宽度”值。

Assign the InputColumnWidth value

如果您注意到,它有一个额外的称为“行分隔符”的空列。完成后,单击“确定”关闭窗口。

extra Row delimiter column added

平面文件目标编辑器中,转到“映射”选项卡检查输入和可用目标列的映射。

Check The Input and Destination Columns Mapping

运行 SSIS 导出 SQL 数据到固定宽度带行分隔符文本文件的包。

Execute SSIS Export SQL Data to Fixed Width with Row Delimiters Text File package

如您所见,文本文件包含了所有记录,其中每列都用固定宽度分隔,并添加了一个额外的行分隔符列。

Fixed Width with Row Delimiters Text File