sql-server - SSIS:代码页返回到 65001

标签 sql-server csv encoding ssis etl

在我正在编写的 SSIS 包中,我有一个 CSV 文件作为源。在“连接管理器常规”页面上,它有 65001 作为代码页(我正在测试某些内容)。不检查 Unicode。

这些列映射到具有 varchar(以及其他)列的 SQL Server 目标表。

There's an error at the destination: The column "columnname" cannot be processed because more than one code page (65001 and 1252) are specified for it.

由于其他应用程序使用它,我的 SQL 列必须是 varchar,而不是 nvarchar

然后,在“连接管理器常规”页面上,我将“代码”页面更改为 1252 (ANSI - Latin I) 并确定,但当我再次打开它时,它又回到了 65001 >。如果(仅用于测试)我是否检查 Unicode 并没有什么区别。

请注意,所有这一切都是在 CSV 文件和 SQL 表添加和删除列(用户,你知道)之后开始发生的。在此之前,我没有任何问题。是的,我在高级编辑器中刷新了 OLE DB 目标。

这是 SQL Server 2012 以及它附带的 BIDS 和 SSIS 版本。

最佳答案

如果您想要转换为 CSV 文件列文本流 [DT_TEXT] 到 SQL varchar(max) 数据类型,请将平面文件连接管理器编辑器属性代码页更改为 1252 (ANSI - Latin I)。

enter image description here

关于sql-server - SSIS:代码页返回到 65001,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48454336/

相关文章:

r - 如何将多个数据框导出到 CSV?

javascript - 在 JavaScript 中计算以 ISO 8859-7 编码的文件的字节大小

Mysql:如何在我的 LOAD DATA INFILE 查询中使用 RTRIM?

sql - 使用 SQL 获取用户排名

sql-server - SQL Server 中的缓慢 DELETE 语句需要帮助读取执行计划并修复

java - 使用 JDBC 运行查询时出现 SQLException

pandas - 将 MacBook Pro 桌面上的 CSV 读取到 Pandas 数据框中

java - 在处理java响应Ajax中的重音字符时,应该使用哪种unicode UTF-8和UTF-16

java - 如何在java邮件的电子邮件主题行中包含英镑符号

sql-server - 比较两个数字并将值 1 或 0 设置为 Excel 或 SQL Server 2012 中的最高值或最低值