在不同服务器之间使用copy能指定被copy的表到指定表空间吗?如下:
copy from olk/123@server1 to plk/123@server2 create table_test_2 using select * from table_test_1;上面的代码执行成功,但是table_test_2被默认的放到了users表空间中,我想让它放入到test2表空间,上面的语句我该怎么改?谢谢

解决方案 »

  1.   

    copy from olk/123@server1 to plk/123@server2 create table test2.table_test_2 using select * from table_test_1; 
      

  2.   

    谢谢楼上的,但是你那样写是把test2当成了库名了!
    所以不好使哈
    create table "test"."table_test_2" TABLESPACE "test2"
    我是想把test2表空间加上去
      

  3.   

    呵呵
    那就还是用你最初的语句,然后建SYNONYMcreate or replace public synonym table_test_2
      for test.table_test_2;
      

  4.   

    呵呵...谢谢楼上兄台了,其实我也可以用alter..move来改变它的所属表空间,但是我实际从server1上copy的数据太大,让它copy到默认users空间中再改表空间名的话,那样会白白的扩大我的users表空间太多,所以我就想看看有没有直接的方法让他copy到server2时就直接在指定的表空间中了.
      

  5.   

    呵呵
    这种情况,你本可以用DBLINK来做,用COPY就有点复杂啊!
      

  6.   

    不是copy的在undo和redo表中占用空间比较少哈 ...呵呵...还是为了空间着想哈..
      

  7.   

    对了,我用dblink的方式,它报错ORA-02085: 数据库链接SERVER1.TEST与DB2.TEST相连结
    这又是为何呢?
      

  8.   

    首先 在test2表空间下 建立table_test_2
    然后 copy to olk/123@server1 to plk/123@server2 insert table_test_2 using select * from table_test_1; 这样 不好使么?
      

  9.   

    呵呵..那样当然好使,不是想着不用建表那么繁琐,直接在copy的时候就创建了哈...