And*_*rew 53 unicode ssis non-unicode
我有一个ssis包,我使用连接到SQL Server 2005表的OLEDB源.除日期列之外的所有列都是NVARCHAR(255).我正在使用Excel目标并使用SQL语句在Excel工作簿中创建工作表,SQL位于Excel连接管理器(实际上是创建工作表的创建表语句)中,并且是从列的映射派生而来的. D B.
无论我做了什么,我都会在源和目标之间获得这个unicode - >非unicode转换错误.尝试在S> D之间转换为字符串[DT_STR],删除它,将SQL表VARCHAR更改为NVARCHAR并仍然得到此flippin错误.
因为我使用SQL语句在Excel中创建工作表,所以我没有看到任何方法来实际预定义Excel工作表中列的数据类型.我想这将是一个默认的元数据,但我不知道.
因此,在我的SQL表目的地和使用此SSIS sql语句创建Excel表之间如何才能阻止此错误出现?
我的错误是:
数据流任务出错[OLE DB源[1]]:列"MyColumn"无法在unicode和非unicode字符串数据类型之间进行转换.
对于所有nvarchar列.
感谢任何帮助
谢谢
安德鲁
小智 58
添加数据转换转换以将字符串列从非Unicode(DT_STR)转换为Unicode(DT_WSTR)字符串.
您需要为所有字符串列执行此操作...
小智 52
以下步骤对我有用:
1).右键单击源任务.
2).单击"显示高级编辑器". ssis中源任务的高级编辑选项
3).转到"输入和输出属性"选项卡.
4).选择要获得错误的输出列.
5).其数据类型为"String [DT_STR]".
6).将该数据类型更改为"Unicode String [DT_WSTR]". 将数据类型更改为unicode字符串
7).保存并关闭.希望这可以帮助!
小智 15
首先,将数据转换块添加到数据流图中.
打开数据转换块并勾选显示错误的列.下面将其数据类型更改为unicode字符串(DT_WSTR)或预期的任何数据类型并保存.
转到目标区块.转到其中的映射并将新创建的元素映射到其对应的地址并保存.
在解决方案explorer.select属性中右键单击您的项目.选择配置属性并在其中选择调试.在这里,将Run64BitRunTime选项设置为false(因为excel不能很好地处理64位应用程序).
您可以将nvarchar列强制转换为varchar列,而不是添加之前建议的数据转换。这样可以避免不必要的步骤,并具有比其他方法更高的性能。
在选择的SQL语句中,替换date为CAST(date AS varchar([size]))。由于某些原因,这尚未更改输出数据类型。为此,请执行以下操作:
完成此操作后,您的源数据将作为varchar输出,并且您的错误将消失。
| 归档时间: |
|
| 查看次数: |
240332 次 |
| 最近记录: |