我要从远程数据库oracle10g一张表把数据(大概300W条数据)插入到本地oracle9i中的一张表,两个表的结构一样,有什么好的办法,请详细说明,谢谢。

解决方案 »

  1.   

    方法一:9i上建一个dblink 连接到10g,在9i上执行下面的语句 将数据读过来
      insert into a from a@dblink_name;
    方法二:10g上建一个dblink 连接到10g,在10g上执行下面的语句 将数据“送过去”
      insert into a@dblink_name select * from a;
    方法三:利用一个版本<=9i的版本号的客户端,连接到10g上去
      exp userid=用户名/密码 ......  将数据exp出来
            然后再连接到9i上将数据imp进去。方法告诉你了,细节自己弄吧同学,不难。
      

  2.   

    exp user/password@database tables=表名 导不出来,不知道是是人家的数据怎么啦,但我可以在上面查询,可以导出excel版本,sql脚本你所说的 insert into a@dblink_name select * from a;
    也不行哦有没有好点的办法,这些办法我之前就想到了,没有用,这个数据库不知道怎么啦,难道有限制吗
      

  3.   

    expdp和impdp应该能满足你如果实在只有文本,就用sqlldr
      

  4.   

    请注意我第三点描述了,数据库版本不同,那么需要的客户端版本也不同。
    客户端的版本需要 <= 最小版本数据库,否则exp 出来的东西,imp不进去