SSIS导出到CSV平面文件目标任务,错误:输入列的代码页为...,需要为...

我在文件目标任务上遇到了这个错误,你知道是什么原因以及如何修复吗?

Package Validation Error

------------------------------
ADDITIONAL INFORMATION:

Error at export data to csv [Flat File Destination [187]]: The code page on input column "..." (958) is 1252 and is required to be 65001.
ta
2个回答

问题是由于SQL Server中的1252代码页(即Windows-1252)与您的CSV文件期望的65001代码页(即UTF-8)之间的冲突引起的。 我认为解决这个问题的一个方法是在从数据库的初始SELECT语句中将源列转换为NVARCHAR,或者使用数据转换任务将它们转换为Unicode字符串。 另一种选择是将Flat File Connection Manager中的代码页设置为1252 ANSI - Latin。

1是的,它可以在两种方式下工作,可以转换为 NVARCHAR,也可以使用数据衍生任务。我还没有尝试将平面文件连接管理器设置为 1252 ANSI - Latin。非常感谢! - user3752281
1SQL Server是一个非常愚蠢的引擎。当然,varcharnvarchar的子集。我不明白为什么它需要显式转换。 - Saeed Neamati
设置平面文件连接管理器是我的选择! - hurleystylee


承认答案的来源是值得赞赏的。将重要观点加入答案是首选的方法。 - Michael Green