我正在使用SSIS在不同的DB之间进行表传输。由于它不是特定于某个源和目标的,而且SSIS本身也没有动态列映射,因此我在C#上实现了一个脚本,利用OracleBulkCopy和SqlBulkCopy写入目标,当然,这两个脚本的使用取决于DB类型。如果我错了,请纠正我,但我认为这将是性能最好的解决方案,使用Oracle或Microsoft直接提供的特定驱动程序,对吗?不管怎么说,我有个问题。

我正在尝试将一个视图复制到一个表中,这两个视图都在Oracle中。我不确定这个错误是不是我想的那样,但我猜是列类型不匹配。所有的列名都是匹配的,所以我不需要做任何映射,但是在类型上可能会有一些不同,例如我想将一个VARCHAR复制到一个数字中。OracleColumnMapping仅适用于列名,而不适用于我找到的类型。
那么,我认为类型不匹配是问题所在吗?如果是,有没有办法将BulkCopy设置为强制将类型转换为目标表?如果它可以设置为自动类型转换所有列的选项,而不是通过映射,那就太好了,但任何解决方案请让我知道。
附言:我认为这同样适用于SqlBulkCopy,但如果不适用,我也需要一个解决方案,尽管我还没有在MSSQL上尝试过。
感谢任何帮助我的人。
发布于 2015-03-02 18:54:26
在我看来,我发现使用SSIS包(.dtsx)进行从Oracle DB到SQLServer DB的传输更容易。使用工具箱可以很容易地进行造型。此类操作不需要C#。
https://stackoverflow.com/questions/28807572
复制相似问题