imp添加参数ignore=y
让它不顾这些问题,直接覆盖导入

解决方案 »

  1.   

    当你使用无参数的Imp命令时,会出现以下的交互命令,注意选择下面一条的就行:
    c:\imp
    ...Ignore create error due to object existence (yes/no) O r a c l e要知道如果在装库过程中,装库文件内的某个对
    象在数据库中已经存在了该怎样处理。若回答y e s,O r a c l e
    就不管该对象存不存在而装入它的数据。若回答n o,那么
    当O r a c l e发现某个对象在数据库中已经存在时,它会报告
    错误而去处理下一个对象
      

  2.   

    C:\>imp help=yImport: Release 9.0.1.3.1 - Production on 星期五 7月 25 08:20:(c) Copyright 2001 Oracle Corporation.  All rights reserved.可以通过输入 IMP 命令和您的用户名/口令
    后接用户名/口令的命令:例程: IMP SCOTT/TIGER或者, 可以通过输入 IMP 命令和各种参数来控制“导入”
    按照不同参数。要指定参数,您可以使用关键字:格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)
    例程: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
    或 TABLES=(T1: P1,T1: P2),如果 T1 是分区表USERID 必须是命令行中的第一个参数。关键字  说明(默认)        关键字      说明(默认)
    --------------------------------------------------------------
    USERID   用户名/口令           FULL         导入整个文件 (N)
    BUFFER   数据缓冲区大小         FROMUSER     所有人用户名列表
    FILE     输入文件 (EXPDAT.DMP)    TOUSER       用户名列表
    SHOW     只列出文件内容 (N) TABLES      表名列表
    IGNORE   忽略创建错误 (N)    RECORDLENGTH  IO 记录的长度
    GRANTS  导入权限 (Y)           INCTYPE      增量导入类型
    INDEXES 导入索引 (Y)          COMMIT       提交数组插入 (N)
    ROWS    导入数据行 (Y)        PARFILE      参数文件名
    LOG      屏幕输出的日志文件   CONSTRAINTS  导入限制 (Y)
    DESTROY                覆盖表空间数据文件 (N)
    INDEXFILE              将表/索引信息写入指定的文件
    SKIP_UNUSABLE_INDEXES  跳过不可用索引的维护 (N)
    FEEDBACK               每 x 行显示进度 (0)
    TOID_NOVALIDATE        跳过指定类型 ID 的验证
    FILESIZE               每个转储文件的最大大小
    STATISTICS             始终导入预计算的统计信息
    RESUMABLE              遇到与空格有关的错误时挂起 (N)
    RESUMABLE_NAME         用来标识可恢复语句的文本字符串
    RESUMABLE_TIMEOUT      RESUMABLE 的等待时间
    COMPILE                编译过程, 程序包和函数 (Y)下列关键字仅用于可传输的表空间
    TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
    TABLESPACES 将要传输到数据库的表空间
    DATAFILES 将要传输到数据库的数据文件
    TTS_OWNERS 拥有可传输表空间集中数据的用户成功终止导入,但出现警告。
      

  3.   

    IMP USER.PWD@SERVICENAME FROMUSEEER=??, IGNORE=Y, FILE=??,LOG=??
    就解决了你的问题
      

  4.   

    imp system/****** file=d:\exp01.dmp log=d:\exp01.log fromuser=**** touser=
    ***** rows=y indexes=y grants=n constraints=n ignore=y –导入
      

  5.   

    这里有一个问题,如果使用“IGNORE=Y”,那么当数据表中没有建立关键字的话,那么有可能出现多条相同内容的记录。它是完全追加记录,而不管原表中是否有相同内容的记录。
      

  6.   

    试过后,果然如海宝兄说的一致,ignore=y只是追加记录,不会覆盖原数据,看来想解决问题,只能删除表重建或用
    truncate table test.aaa 先将原表截断,再导入了。
    顺便问一下,truncate 如要同时截断多张表,需怎样写这条语句??????