【问题标题】:Exporting data to csv from SQL Server从 SQL Server 将数据导出到 csv
【发布时间】:2021-04-04 10:38:35
【问题描述】:

我有一个 SQL Server 表,其中包含 varchar(MAX) 类型的列,我正在尝试获取 .csv (UTF-8) 类型的导出,但我得到了这个错误。

我想知道如何在不丢失数据的情况下将此数据类型更改为nvarchar(MAX)。有人可以帮忙吗?

消息

错误 0xc00470d4:数据流任务 1:目标上的代码页 - test_csv.Inputs[平面文件目标输入].Columns[test1] 为 1252,必须为 65001。
(SQL Server 导入导出向导)

错误 0xc00470d4:数据流任务 1:目标上的代码页 - test_csv.Inputs[平面文件目标输入].Columns[test2] 为 1252,必须为 65001。
(SQL Server 导入导出向导)

(更多相同的错误 - 对于每一列)

错误 0xc004700c:数据流任务 1:一个或多个组件验证失败。
(SQL Server 导入导出向导)

错误 0xc0024107:数据流任务 1:任务验证期间出现错误。
(SQL Server 导入导出向导)

我查看了similar questions,在那里我遇到了同样的问题,但我不知道如何在查询中使用 CAST 或 CONVERT

【问题讨论】:

  • 你的 sql 语句是什么?
  • @akop 你是什么意思?包括名称等,如果我将其导出为 ASCII 将丢失,因此它必须是 UTF-8
  • “但我不知道如何在查询中使用 CAST 或 CONVERT” 你在哪里卡住了? SSIS 中的数据转换转换对于更改代码页等任务非常简单。
  • @Larnu Idk,我是新手 sry :( 我现在正在寻找答案
  • 我会从documentation开始。

标签: sql sql-server types type-conversion


【解决方案1】:

您可以通过 3 种方式解决此问题:

  • 在初始 SELECT 中将您的源列转换为 NVARCHAR,例如CAST(mycolumn as nvarchar(column_length))

  • 使用 SSIS 数据转换任务将字符串转换为 Unicode

  • 将平面文件连接管理器的代码页设置为“1252 ANSI - Latin I”

(65001 代码页 = Unicode (UTF-8))

您可能会发现第 3 个选项最简单。

【讨论】:

  • data 包含“1252 ANSI - Latin”不支持的语言名称,所以我会尝试其他解决方案
猜你喜欢
  • 1970-01-01
  • 2014-07-26
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多