将数据导出到平面文件的SSIS将双引号呈现为十六进制字符

时间:2011-10-31 14:17:58

标签: sql-server-2008 ssis

我有一个简单的SSIS作业,可以将数据从数据库导出到平面文件。我使用双引号作为文本分隔符。当我在我的开发机器上运行工作时,一切都很好。但是,当我将作业移动到运行带有SQL Server 2008 R2的Windows 2008的登台服务器时,CSV文件中的双引号将导出为 X0022 (十六进制)。

有谁知道为什么会这样,以及如何解决它?

3 个答案:

答案 0 :(得分:7)

这看起来像是我们不久前遇到的事情。 Jamie Thomson在一篇博文中记录了它 - SQL Server 2008 SP1 CU 6 includes small changes to .dtsx files

检查两种环境中的SQL Server版本:

SELECT @@VERSION

答案 1 :(得分:1)

虽然Tom的答案是正确的,但是如果您无法对任何环境进行更改,则无法解决问题,理想情况下,您希望对SSIS包进行更改以使其在所有环境中运行环境。这可以作为一种解决方法:

将以下表达式添加到Flat File连接管理器的TextQualifier中:

"\""

这将生成所需的双引号文本限定符,但它将作为表达式存储在包xml中,以避免出现此问题。

答案 2 :(得分:0)

如果它有帮助,我解决了这个问题,创建了一个脚本任务的最后一步,我在文件中替换生成了所有“ x0022 ”字符串并使用正确的值。