在 SSIS 中,如何将 unicode 数据类型转换为 excel 列?

In SSIS, How to convert unicode datatype to excel column?

我正在使用 SSIS 包将输出数据导出到 Excel 文件。 (Excel 目的地)。

我 运行 遇到了转换错误。

Error Description : cannot convert between Unicode and non-Unicode string data types

输入列详细信息

ColumnA ([DT_TEXT])
ColumnB ([DT_STR],200)

数据转换输出列详细信息

ColumnA ([DT_TEXT])
ColumnB ([DT_WSTR],255)

如何将 Unicode 数据类型转换为 excel 列?

使用数据转换工具将DT_WSTR转换成DT_STR.Check这个:

使用派生列转换

使用以下表达式添加派生列

(DT_WSTR,255)[ColumnB]

如果失败,您可以使用错误输出来检查导致异常的错误值

使用数据转换转换

您也可以使用数据转换转换组件来实现这一点。只需 select ColumnB 作为输入并选择转换为 DT_WSTR 长度 = 255

的数据类型

使用脚本组件

您只需要 select ColumnB 作为输入列,添加类型 DT_WSTR 和长度 = 255 的输出列 outColumnB。然后只需将输入列分配给输出列在脚本中。

Row.outColumnB = Row.ColumnB

更新 1 - Excel 数据类型

基于以下官方文档:

The Excel driver recognizes only a limited set of data types. For example, all numeric columns are interpreted as doubles (DT_R8), and all string columns (other than memo columns) are interpreted as 255-character Unicode strings (DT_WSTR). SSIS maps the Excel data types as follows:

  • Numeric - double-precision float (DT_R8)
  • Currency - currency (DT_CY)
  • Boolean - Boolean (DT_BOOL)
  • Date/time - datetime (DT_DATE)
  • String - Unicode string, length 255 (DT_WSTR)
  • Memo - Unicode text stream (DT_NTEXT)