【发布时间】:2015-05-02 16:10:25
【问题描述】:
我正在使用 SSIS 在不同数据库之间进行表传输。由于它不是特定于一个源和目标,并且 SSIS 本身没有动态列映射,因此我在 C# 上实现了一个脚本,利用 OracleBulkCopy 和 SqlBulkCopy 写入目标,当然这取决于 DB 类型。如果我错了,请纠正我,但我认为这将是性能最好的解决方案,使用 Oracle 或 Microsoft 直接提供的特定驱动程序,对吗? 无论如何,我有一个问题。
我正在尝试将视图复制到表中,都在 Oracle 中。我不确定这个错误是我的想法,但我的猜测是列类型不正确匹配。所有的列名都匹配,所以我不需要做任何映射,但类型上可能会有一些差异,例如我想将一个 VARCHAR 复制到一个 NUMBER 等。 OracleColumnMapping 仅适用于列名,不适用于我找到的类型。
那么,我是否可以假设类型不匹配是问题所在,如果是,有没有办法设置 BulkCopy 以强制类型转换为目标表?如果可以将其设置为自动类型转换所有列的选项,而不是通过映射,那就太好了,但任何解决方案都请告诉我。
P.S.:我认为同样适用于 SqlBulkCopy,但如果没有,我也需要一个解决方案,尽管我还没有在 MSSQL 上尝试过。
感谢任何提供帮助的人。
【问题讨论】:
标签: c# oracle ssis odp.net sqlbulkcopy