各位师兄,帮我想想办法,我现在要用C++ Builder完成一个功能是将远程的oracle数据库导入到本地的InterBase数据库里,我原来的做法是一条条的读出,然后再插入,这样做速度太慢了,一旦网络出现问题,就要重新导,这种方法不太好!请问大家有没有好一点的办法,尽量说的详细一点,谢谢!

解决方案 »

  1.   

    恐怕不是导出导入这么简单吧,做数据迁移不光是导数据的。只导数据的话,用sql server提供的数据导出导入工具就可以实现了。
      

  2.   

    用exp,imp导入导出。
    写个批处理文件就行了。
      

  3.   

    同意楼上的
    用EXP / IMP
      

  4.   

    1、没试过interbase,如果图稳定,最好是先导入文本再导入数据库;
    2、如果能兼容oracle的dmp备份文件,可以考虑用EXP / IMP;
    3、如果只是实现人工数据导入导出且网络比较稳定或者是要周期性的做,建议用sqlserver的导入导出工具,它还有dts功能;
    4、另外,如果网络不算太差,也可以考虑oracle的透明网桥,直接建立到你目标数据库的数据链接,在oracle数据库用过程或包或作业来做操作;
    5、本人没用过InterBase数据库,不晓得它有没有到其它数据库的开发接口和类似oracle透明网桥或sqlserver导入导出向导的工具。个人以为,从目标数据源建立到来源数据源的通道,在目标服务器上执行导入操作效率要好一点,所以如果interbase也有类似工具,还是建议用它自己的工具代替3、4中说到的工具;
    6、其实通过变量导也是可以的,不过速度的确慢;可以通过两端设计标志位、实时提交的办法保证网络出现故障时,上一条收敛数据会被成功导入,只回滚本条未收敛数据;
    每种方法都能实现需求的,主要看自己更熟悉哪种工具以及实际的需要