【问题标题】:SQL Server The column cannot be processed because more than 1 code page (65001 and 1252) are specified for itSQL Server 无法处理该列,因为为其指定了多个代码页(65001 和 1252)
【发布时间】:2019-02-20 22:28:54
【问题描述】:

我在桌子上做了一个select *。我导出了结果并尝试将其导入并写入另一个表(我必须通过 SSIS 执行此操作,出于安全许可的目的,我无法通过 SQL Server(即select into)执行此操作,但我可以这样做)。

如何解决此错误?它到底是什么意思?我尝试搜索 StackOverflow,但我的搜索不是很有帮助。

我尝试使用 OLEDB 源步骤,但我的服务器实例由于某种原因没有出现,所以现在我尝试从 SSMS 导出/导入。

【问题讨论】:

  • 美好的一天(1) “不能通过 sql server 执行此操作”但使用 SSIS 是什么意思。 SSIS 只是一个使用 SQL Server 的工具,没有工具就无法直接使用 SQL Server,因为 SQL Server 没有 GUI,只有一组服务。我们通常使用 SQL Server Management Studio 或 SQL Operations Studio 作为 GUI 工具来执行查询,但这些都是外部工具。因此,我怀疑您的意思是说“不使用直接查询”或“不使用 SSMS”而不是“不使用 SQL Server”。 (2) 为什么你认为 SSIS 比直接查询更安全(提示 - 它不是)?!?
  • (3) 更新的最后一条评论我不清楚,请澄清(4) 请提供选项卡的结构;e 通过发布创建表的查询(不是图像!而不是故事)关于结构,但包含所有索引和约束的简单 CREATE 查询)
  • 我不知道这个特定的消息,但这指向冲突的排序规则。检查服务器的默认排序规则,数据库的默认排序规则以及所涉及的表/视图的定义......

标签: sql-server tsql ssis


【解决方案1】:

当我有一个目标和一个具有不同代码页的源时,我通常会收到这个错误。似乎您有一个带有 1252 代码页的平面文件和一个带有 65001 代码页的目标表(反之亦然)。 您应该在源组件和目标组件之间尝试Data Conversion 组件。

【讨论】:

  • 这实际上是问题所在。谢谢!
【解决方案2】:

您正在尝试将列从带有 Code Page 65001 (UTF-8) 的值映射到带有 1252 (ANSI - Latin I) 的值,反之亦然反之亦然。 为了解决这个问题,我建议您包含 Derived Column 类型的任务,并添加一个带有适当 Code Page 的新列。现在您必须获得具有适当编码的输出才能检索数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-29
    • 2017-11-29
    • 2011-09-28
    • 1970-01-01
    • 2013-02-14
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多