有服务器A,192.168.105.10   有服务器B,192.168.105.85
A上有一个oracle库a, B上有一个oracle库b。
我想通过sql实现,把b中的一个表c(包含表结构和数据)复制到a库中,但是不知道怎么写。
求大神指点,谢谢了!

解决方案 »

  1.   

    搜一下DBLink
    在a中建立一个指向b的DBLink,然后执行:create table c as select * from c@b
      

  2.   

    最好的办法,在a服务器上:
    impdp

    exp/imp
    这样可以完整的迁移。
      

  3.   

    主要我是一个普通用户,sys的密码啥的我都不知道,但是这两个库我都能有查询插入等权限,所以我想用sql来解决这个问题。
    创建dblink成功了,但是查询的时候报了个错误。select * from user_order_info@dblink_test
    ORA-01045: user SCOTT lacks CREATE SESSION privilege; logon denied
    ORA-02063: 紧接着 line (起自 DBLINK_TEST)而且现在我登录b库也是拒绝。
      

  4.   


    权限问题啊, 你建的dblink 里的用户对表没权限才这样的吧。
      

  5.   


    权限问题啊, 你建的dblink 里的用户对表没权限才这样的吧。
    这个不太清楚,目前用pl/sql连接这个库也连不上了,是不是这个库没有启动啊?
    再问一个问题,如何知道自己的权限,查那个表哇?
    谢谢
      

  6.   

    那个用户没有create session权限,就是dblink_test指向的那个用户,scott?
    给那个用户授权下:
    grant connect to scott;
      

  7.   

    查看自己的表权限
    select * from user_tab_privs;你如果搞DBLINK实在搞不了.表也不是很大
    那用最简单的办法, 
    用PL/SQL
    查看C表结构,可以查看建表SQL.
    在A库建表.
    查询C表数据,直接加载全部,全选,复制,
    再A库中点表编辑,粘贴,确认,提交.
    搞定.但是DBLINK更快更直接.
      

  8.   

    最好的办法还是exp/imp或expdp/impdp,如果现在不知道,今后你会知道的,这个最简单,最快,也最靠谱。