Sql server SSIS Oracle源未正确读取Unicode字符 问题

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

我正在创建一个SSIS包,用于将数据从Oracle移动到SQL Server,但在某些Unicode字符方面遇到了问题

源Oracle数据库列为
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')
  • 使用
    UTL\u RAW。在SQL命令文本中将\u转换为\u RAW
    。这将生成正确的二进制值(在SSIS中为
    DT_字节
    ),但我无法使用数据转换或派生列将其转换回
    DT_WSTR
  • 我已经测试过从SQL Server数据库中提取相同的字符,它们正确地显示在SSIS预览窗口中,只是为了排除SSIS问题
我正在使用SQL命令访问模式,如下所示:

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。