sql-server - 列“”无法在 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 数据库是位置字段
谁能建议我在这里缺少什么?任何帮助是极大的赞赏
解决方案
从组件的高级编辑器更改列数据类型不会解决问题。如果导入的值包含一些 Unicode 字符,则无法将它们转换为非 Unicode 字符串,您将收到以下异常。在提供一些解决方案之前,我强烈建议阅读这篇文章以了解更多关于 SSIS 中数据类型转换的信息:
回到您的问题,您可以尝试几种解决方案:
- 更改目标列数据类型(如果可能)
- 使用数据转换转换组件,实现错误处理逻辑,将引发异常的值重定向到临时表或在将它们重新导入目标表之前对其进行操作。可以参考以下文章:SSIS包中的错误处理概述
- 从平面文件连接管理器中,进入“高级选项卡”,并将列数据类型更改为
DT_STR
.
推荐阅读
- r - 过滤另一个表中同一行的多列上的df?
- r - 如何通过 caret kernlab 包提取高斯过程回归的预测区间?
- sublimetext3 - control+/ 不能在 sublime 3 中注释多行
- r - R查看器不平衡且缓慢
- next.js - Next.js Amplify Serverless AppSync graphql(放大错误)
- plotly - 如何在破折号中提供动画情节表达图?
- ubuntu-18.04 - 每次发生 Oracle JDK 11 错误,我在终端中安装任何东西
- javascript - 如何仅选择一个附加元素的输入值
- maven - Maven 为 Sonatype Nexus 存储库构建部署目标抛出异常
- java - 无法解析:无法从 TemporalAccessor 获取 OffsetDateTime: