ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-00959,imp到指定表空间

ORA-00959,imp到指定表空间

原创 Linux操作系统 作者:feilo4r 时间:2010-07-22 15:31:48 0 删除 编辑
        今天协助DW组的一位同事,从一个生产库上导部分表到测试库。由于测试库的表空间命名规则和生产不一样,又不想再创建不符合测试库命名规则的tablespace。

        imp userid=schema/password fromuser=username1 touser=username2 ignore=y file=expfile.dmp tables=table_name;

        执行后报ORA-00959:tablespace 'tablespace_name' does not exist。其实原因很明显,ignore=y ,即oracle会执行create table的ddl语句,而这个ddl语句肯定是依据原库中的语句生成的,故tablespace不存在也是很自然的了。

        故想了个办法绕过,在原库上通过dbms_metadata.get_ddl包在原库上获得create table的ddl语句。select dbms_metadata.get_ddl('TABLE','table_name','schema') from dual;对该语句做一些小的修改,修改相应的schema和tablespace_name,手工在新库上执行。然后将之前的imp语句中的ignore修改为n,即不执行create table的操作,直接插入数据,当然也不会有了报错。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11258275/viewspace-668768/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: ORA-26563
下一篇: 对TB级磁盘分区
请登录后发表评论 登录
全部评论

注册时间:2008-09-19

  • 博文量
    33
  • 访问量
    97927