【发布时间】:2013-03-10 23:07:37
【问题描述】:
我有一个 ssis 包,我在其中使用链接到 SQL Server 2005 表的 OLEDB 源。除日期列之外的所有列都是 NVARCHAR(255)。我正在使用 Excel 目标并使用 SQL 语句在 Excel 工作簿中创建工作表,SQL 位于 excel 连接管理器中(实际上是创建工作表的 create table 语句),并且派生自数据库。
无论我做了什么,我都会不断收到这个 unicode --> 我的源和目标之间的非 unicode 转换错误。尝试在 S > D 之间转换为字符串 [DT_STR],将其删除,将 SQL 表 VARCHAR 更改为 NVARCHAR,但仍然出现此翻转错误。
因为我在 Excel 中使用 SQL 语句创建工作表,所以我看不到任何方法来实际预定义 Excel 工作表中列的数据类型。我想这将是一个默认的元数据,但我不知道。
那么在我的 SQL 表目标和使用此 SSIS sql 语句创建我的 Excel 工作表之间,我如何才能阻止此错误的出现?
我的错误是:
数据流任务 [OLE DB 源 [1]] 出错:列“MyColumn”无法在 unicode 和非 unicode 字符串数据类型之间转换。
对于所有 nvarchar 列。
感谢任何帮助
谢谢
安德鲁
【问题讨论】:
-
你需要使用
Data Conversion将non-unicode转换为unicode,因为excel只识别unicode数据 -
删除了SSIS包的转换部分,删除了destination和excel的连接,包括删除了工作簿中SQL创建的sheet,重新开始。现在它加载正常,错误
-
正如我所说,现在删除转换工作正常。据我了解,SQL 数据列类型是 NVARCHAR 一种 unicode 类型,因此不需要转换。
-
是的,我的错误。只是没有考虑到您在源代码中有
NVARCHAR,但我所说的是正确的,excel 只识别unicode数据 -
删除 OLE DB 源并重新创建它。为我工作。
标签: unicode ssis non-unicode