使用 SSIS 将长列导出到平面文件的问题

Alf*_*f47 4 sql-server ssis sql-server-2016 ssis-2016

我们有一个 SSIS 包,它将生成供 Google Big Query 使用的文件。这些文件将是 gzip 压缩的 .tsv 文件。

要求之一是文件必须是 UTF-8。我们已在平面文件目标中设置它,使其为 65001 - UTF-8。在此之后,生成的 gzip 文件将正确用于 Big Query。

现在的问题是某些字段的字符长度高达 21,000 个字符。DT_WSTR 不允许这个大小。

将平面文件目标字段更改为 DT_NTEXT 会产生以下错误消息

错误:0xC020802E at 14_3 Data Flow into MyTSV, Flat File Destination MyDestination [12]:“Flat File Destination MyDestination.Inputs[Flat File Destination Input].Columns[Value]”的数据类型是 DT_NTEXT,ANSI 不支持文件。改用 DT_TEXT 并使用数据转换组件将数据转换为 DT_NTEXT。

我读过的所有解决方案都涉及转换回 DT_WSTR 或将代码页改回 1252,由于 Big Query 代码页要求和数据长度,这不是一个选项。这个问题还有其他解决方案吗?

Sti*_*ing 7

尝试单击 Unicode 复选框

试试下面的 65001 代码页和 Unicode 复选框,它为我摆脱了错误消息。希望我们使用的是类似版本的 SSDT。我的版本是15。

但首先,双击您的平面文件目标,然后单击“更新”按钮...

在此处输入图片说明

在此处输入图片说明