0

我有 SQL Server 2008 R2,我正在使用 SSIS 将日期从另一台服务器 (SQL 2005) 导入我的生产服务器。当我导入阿拉伯字符时,它在测试环境中工作时显示为问号。

我检查了服务器、数据库、表和列的所有设置和排序规则。一切都是一样的。我相信这不是编码问题,因为它正在进行测试,我复制了相同的 SSIS 包以用于生产。

源列具有 NVARCHAR 作为数据类型,而目标列具有 VARCHAR。我创建了一个简单的查询来从源中选择数据并将其插入到目标中,它可以正常工作,但是当我使用 SSIS 导入日期时,它无法正常工作。

任何想法?

4

1 回答 1

0

我一直面临着同样的问题,并试图找到解决方法。经过几次试验和错误方法后,以下步骤对我有用:

问题

驱动程序将 Oracle DB 中的数据解释为DT_STR类型,不支持阿拉伯字符。为了解决这个问题,我们需要驱动程序将数据作为DT_WSTR类型读取。

解决方案

所以解决方案是我们需要让 SSIS 引擎读取数据,DT_WSTR而不是DT_STR.

VS 解决方案

Microsoft OLE DB provider for Oracle在连接管理器中用作提供程序并面临此错误。

VS 提供了另一个连接到 Oracle DB 的驱动程序,Oracle Provider for OLE DB. 该驱动程序以DT_WSTR格式读取数据。

当我使用数据创建数据源时,Oracle Provider for OLE DB正在以DT_WSTR格式读取数据并以与源中相同的字符成功推送到目标。

在此处输入图像描述

于 2022-01-28T18:22:56.323 回答