现在服务器上有个库,我想导到我本地。但是该库太大,原因是有的表数据量太多,而这些表的数据根本就用不着。我现在想把有用的表(包含其数据)导到我本地,数据用不着的表我只创建到我本地而不导其数据。不知道大家有什么好办法吗?我现在想的办法是:
1、用pl/sql developer 的tools 菜单下的export table工具,把有用的表选中,然后包含其数据一同导到硬盘,然后导到我本地库里。
2、用exp命令把服务器上的用户下的所有对象都导出来,但所有表都不导数据,只有空结构。然后执行imp命令,把导出的dmp导到本地。因为第二次导入的对象不会覆盖用户下已经有的对象(不知道对不对?),所以第一次导入的有用的表的数据都还存在。不知道这个方法可不可行,请大家指点,十万火急!!非常感谢!

解决方案 »

  1.   

    exp 有 tables= 这个参数,能指定表导出 
      

  2.   

    oracle 导出空表只导出3张表的结构:
    exp user/pasword@dbServerName owner=user tables=(tb1,tb2,tb3) rows=n file=c:\1.dmp
    连带数据导出:
    exp user/pasword@dbServerName owner=user tables=(tb1,tb2,tb3) rows=y file=c:\2.dmp
    imp user2/pasword@dbServerName2 fromuser=user touser=user2 file=c:\1.dmp
    或者
    imp user2/pasword@dbServerName2 fromuser=user touser=user2 file=c:\2.dmp 
      

  3.   

    建议的方法:1. 先导出表结构,而没有数据.
    2. 再把要导数据的表导出来,导入到目标库中,导入时用imp,注意要加ignore=y,
       ignore=y表示导入时如果已经有表结构了,则不再重新创建表,直接导入数据.
      

  4.   

    我的解决方法,测试成功,类似于四楼。
    先exp导出想要数据的表,参数全是默认,导出的结果包含数据,导入本地库。
    exp导出用户下的所有对象,rows=n,其他参数默认,导入本地库,会出现提示有些表已存在,创建表的语句执行失败。
    这样存在数据的表都会跳过去了,其他存储过程之类的全都导进去了