【问题标题】:Oracle BulkCopy Type MatchingOracle BulkCopy 类型匹配
【发布时间】: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


    【解决方案1】:

    在我看来,我发现使用 SSIS 包 (.dtsx) 从 Oracle DB 传输到 SQLServer DB 更容易。使用工具箱可以轻松制作演员表。此类操作不需要 C#。

    【讨论】:

    • 我正在使用 SSIS 包,但是我不想要静态列,而是动态列。所以我只需输入源和目标信息并复制它们。唯一这样做的组件来自 CozyRoc,我遇到了问题,所以我用脚本解决了它。如果您对数据传输有其他想法,而无需在包中配置静态列,那就太好了。
    猜你喜欢
    • 2021-02-11
    • 1970-01-01
    • 2023-01-10
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多