SSIS 平面文件源文本限定符被忽略

SSIS Flat File Source Text Qualifier being ignored

我正在使用 SSIS 将数据从平面文件插入数据库。

我为此创建了数据流任务。我使用平面文件作为源和 ADO NET 目标来插入数据。

下面是平面文件源的设置。

下面是我的 "Columns" 标签的样子

当我 运行 使用出价并将数据正确插入数据库时​​,这工作正常。当 运行 在本地时,它甚至可以与 DTEXEC.EXE 一起使用。

现在,问题在于使用 dtexec.exe 在服务器上执行包。在服务器上,数据被正确插入,但在将数据插入数据库时​​,给定的文本限定符(双引号)被完全忽略。在 运行 本地时同样有效。我附上了下面的图片,了解它是如何存储在数据库中的。

我检查了 SQL 本地和远程服务器上的 SERVER 版本和 SSIS 版本,两者都相同。

可能是什么问题?有人可以帮忙吗?

在平面文件源中,单击 "Columns"。确保在预览数据时预览中没有引号。否则您可能需要回头查看您的文件并确保文本限定符和分隔符都正确。

如果这不起作用,请将 "Columns" 屏幕的屏幕截图以及 post 截图。实际文件布局的屏幕截图也会有所帮助。希望这对您有所帮助!

在您的平面文件连接管理器中,在“高级”选项中,您应该可以看到每个字段的不同参数。您将看到每个字段都有一个名称、ColumnDelimiter、一堆淡出的字段和 DataType 以及是否为文本限定的选项。

在那里,您应该通过将 TextQualified 选项设置为 true[= 来指定您希望确定为文本限定的列20=].

所以我找到了解决这个问题的办法。感谢 LukeBI 回答 here

创建一个名为 TextQualifier 的字符串变量并赋值 "(双引号)

Select 连接管理器,在属性中 window select 'Expressions'。见下文。

单击 ...,添加 属性 'TextQualifier' 并分配变量 @[User::TextQualifier]。见下图

现在工作正常。它现在甚至可以在 64 位 OS 上运行。