【发布时间】:2011-01-24 09:12:12
【问题描述】:
我已经使用标准 SQL Server 快照和事务复制“继承”了一个正常工作的 Oracle (10g) 到 SQL Server 2005 数据复制。
一切正常 - 只要 Oracle 不尝试发送超出 SQL Server DATETIME 范围(1753/1/1 到 9999/12/31)的日期。我希望能够以某种方式进入数据复制的中间,检查该日期范围,如有必要,将发布的 Oracle 日期调整为 SQL Server 2005 的 DATETIME 数据类型可以处理的日期。
是否有任何相当简单的方法可以做到这一点?我知道我可以将目标数据类型更改为 VARCHAR(19) 或类似的东西 - 我知道我可以升级到 SQL Server 2008 并使用 DATE 或 DATETIME2 数据类型来解决问题 - 这两个选项都不是现在可行(可能在 6、12 个月左右)。
有什么我可以现在做的吗?而且很容易??不幸的是,我无法深入了解 Oracle 来修复它(这是另一家不喜欢其他人在他们的系统中摆弄的第三方公司)。
【问题讨论】:
-
我不相信有解决方案 - 据我了解,复制过程类似于使用日志阅读器进行事务复制,因此它并不是真正在“SQL”上下文中运行 -它较低,因此无法使用 T-SQL 解决方案。
标签: sql-server-2005 oracle10g database-replication transactional-replication