Sql server SSIS Oracle源未正确读取Unicode字符 问题
我正在创建一个SSIS包,用于将数据从Oracle移动到SQL Server,但在某些Unicode字符方面遇到了问题 源Oracle数据库列为Sql server SSIS Oracle源未正确读取Unicode字符 问题,sql-server,oracle,unicode,ssis,Sql Server,Oracle,Unicode,Ssis,我正在创建一个SSIS包,用于将数据从Oracle移动到SQL Server,但在某些Unicode字符方面遇到了问题 源Oracle数据库列为NVARCHAR2,示例字符为U+0102,但也适用于其他字符。这些将被迁移到SQL Server中的NVARCHAR列中,但问题似乎出现在提取点,因为当我在SSIS中预览源代码时,有问题的字符仅显示为反向问号,例如 DEMO?DEMO 安装程序 我正在使用Attunity-Oracle源任务/连接,因为无法使oledb连接工作 Oracle数据库具有N
NVARCHAR2
,示例字符为U+0102
,但也适用于其他字符。这些将被迁移到SQL Server中的NVARCHAR
列中,但问题似乎出现在提取点,因为当我在SSIS中预览源代码时,有问题的字符仅显示为反向问号,例如
DEMO?DEMO
安装程序
我正在使用Attunity-Oracle源任务/连接,因为无法使oledb连接工作
Oracle数据库具有NLS\u NCHAR\u字符集AL16UTF16
我尝试过的事情
- 将源任务的高级设置中的
值更改为DefaultCodePage
,1252
,65001
,1200
1201
- 以各种方式转换SQL命令文本中的源列,例如:
Convert(源列,'AL32UTF8')
- 使用
。这将生成正确的二进制值(在SSIS中为UTL\u RAW。在SQL命令文本中将\u转换为\u RAW
),但我无法使用数据转换或派生列将其转换回DT_字节
李>DT_WSTR
- 我已经测试过从SQL Server数据库中提取相同的字符,它们正确地显示在SSIS预览窗口中,只是为了排除SSIS问题
SELECT SOURCE_COLUMN
FROM SOURCE_TABLE;
非常感谢您的帮助。您说预览窗口中的字符是奇数,但是您是否尝试过将副本提交到SQL Server表中,并且在复制后Unicode字符仍然不正确?我想问的是,也许这只是查看Oracle数据的窗口?此外,该线程可能有帮助,也可能没有帮助?是的,提交到SQL时字符不正确,显示为倒问号。我试图输出到一个平面文件csv和有同样的问题。我并没有完全关注这个威胁,但在SSIS中,有问题的专栏被输出为DT_WSTR,这在我看来是正确的。源列为NVARCHAR2,数据长度为60,字符长度为30。因此,您在预览窗口中说字符是奇数,但您是否尝试将副本提交到SQL Server表中,并且在复制后Unicode字符仍然不正确?我想问的是,也许这只是查看Oracle数据的窗口?此外,该线程可能有帮助,也可能没有帮助?是的,提交到SQL时字符不正确,显示为倒问号。我试图输出到一个平面文件csv和有同样的问题。我并没有完全关注这个威胁,但在SSIS中,有问题的专栏被输出为DT_WSTR,这在我看来是正确的。源列为NVARCHAR2,数据长度为60,字符长度为30。