首页 > 解决方案 > 列“”无法在 unicode 和非 unicode 字符串数据类型之间转换

问题描述

我正在尝试将平面文件中的数据导入 Azure SQL 数据库表,并且我也有一个合并以与另一个源合并。但是当我将平面文件中的字段映射到 Azure SQL 数据库时,我不断收到类似的错误

Column "Location" cannot convert between unicode and non-unicode string data types

在查看一些论坛时,我试图将字段的数据类型更改为Unicode string[DT_WSTR],甚至我试图拥有string [DT_STR]

在此处输入图像描述

下面的目标 Azure SQL 数据库是位置字段

在此处输入图像描述

谁能建议我在这里缺少什么?任何帮助是极大的赞赏

标签: sql-serverssisazure-sql-databaseetl

解决方案


从组件的高级编辑器更改列数据类型不会解决问题。如果导入的值包含一些 Unicode 字符,则无法将它们转换为非 Unicode 字符串,您将收到以下异常。在提供一些解决方案之前,我强烈建议阅读这篇文章以了解更多关于 SSIS 中数据类型转换的信息:

回到您的问题,您可以尝试几种解决方案:

  1. 更改目标列数据类型(如果可能)
  2. 使用数据转换转换组件,实现错误处理逻辑,将引发异常的值重定向到临时表或在将它们重新导入目标表之前对其进行操作。可以参考以下文章:SSIS包中的错误处理概述
  3. 从平面文件连接管理器中,进入“高级选项卡”,并将列数据类型更改为DT_STR.

推荐阅读