【问题标题】:Oracle to SQL Server (SSIS) special character problemsOracle 到 SQL Server (SSIS) 特殊字符问题
【发布时间】:2015-04-13 15:18:28
【问题描述】:

我正在尝试通过 SSIS 包数据流任务将数据从 Oracle 导入 SQL Server。 一列具有特殊字符,并且该列也是该表中复合键的一部分。 因此,在我尝试强制执行唯一性时在 SQL 上加载数据后,它失败了,因为在加载数据时特殊字符被转换为其他字符。 是否有任何属性或替代方法可以按照它们在 Oracle 中的方式导入特殊字符。 提前致谢。

【问题讨论】:

  • 您要导入的 SQL Server 上的数据类型是什么?它必须是 NVARCHAR。
  • Oracle 上的数据类型为 VARCHAR2(4 Byte),我将其定义为 NVARCHAR(4 Byte)
  • sample :: 有一个数据,其中最后一个字符是 ASCII(137),但是当我在加载转换为 ASCII(63) 后在 sql 中检查相同时

标签: sql sql-server oracle ssis-2012


【解决方案1】:

根据我的经验,这似乎是一个常见问题。 我将尝试描述一些可能对您有所帮助的步骤。 首先,您需要禁用主键列并再次运行 dtsx。 其次,您必须找到导致主键违规的相同值。 这意味着两个不同的字符可能映射到同一个字符并产生错误。

请记住,SSIS 无法使用 Oracle 的 UTF-8 读取,如果您转到 Oracle 源对象中的高级视图并检查输入/输出列,您可以自己查看它,通常代码页为 1251。

唯一的解决方案是使用派生列并在插入之前手动替换有问题的字符。此外,如果您执行此解决方案,它会更有帮助。

OracleDB->文件->派生列->SQLServer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多