如果加上这个参数呢?
INCTYPE 增量导入类型
试试看

解决方案 »

  1.   

    imp不可以,但是可以先导出文本文件,再用sqlldr来覆盖原来的纪录
      

  2.   

    增量导入必须使用增量导出文件,而增量倒出必须是full_database模式,恐怕不符合帖主的要求。
      

  3.   

    我曾经也想这样,但是没有找到办法
    只好先truncate table,再导入
      

  4.   

    truncate table在导入,也是一个好办法
    要么,你先把所有的表drop掉,也可以
      

  5.   

    我曾经也想这样,但是没有找到办法
    只好先truncate table,再导入
    ______________
    能给解释一下如何用truncate table吗?谢谢!
      

  6.   

    在sqlfile写truncate table yourtable1;
               truncate table yourtable2;然后运行(这个可以做成一个计划任务):
    sqlplus system/manager@yourdb @sqlfile
      

  7.   

    用drop 也可以,但是如果该表有一些授权的话,你必须重新授权
      

  8.   

    在sqlfile写truncate table yourtable1;
               truncate table yourtable2;
              imp userid=tydy/mytydy@tydyjds file=c:\back\tydy.dmp log=c:\back\tydy.log fromuser=tydy touser=tydy ignore=y
    ________是这样吗?然后运行(这个可以做成一个计划任务):
    sqlplus system/manager@yourdb @sqlfile
    ————————
    truncate table 是把表中的数据清空还是设置成可冲突、可覆盖状态?若是前者的话,以前的数据呢?
    如果可以,exp命令怎么执行,写在sqlplus中吗?
      

  9.   

    同意:penitent(只取一瓢)
    简单直接,如应许把用户都删除掉。
    :)
      

  10.   

    帖主恐怕要哭了!^o^
    不清楚truncate table(截掉)是干什么的?一试才知道,就是delete from table啊!aaa!我可怜的数据!
    这样呢:上级数据(表模式)导出,删数据,下级数据导入,上级数据再导入!
    三次,好慢的效率,如果上级数据多的话!
      

  11.   

    to hjunxu(hjun)
     因情况而定,有些用户下面的大表不需要每次都导入,导整个用户就不划算了
      

  12.   

    你看这样可以吗
    一、创建一个新表table1,imp你的数据到这个新表table1中。假设你的旧表是table;
    二、编写一个存储过程,实现以下功能:
        CREATE OR REPLACE PROCEDURE DaoShu()
        IS
           V_SHU NUMBER;
           CURSOR c1 IS SELECT 唯一标记 FROM TABLE1;
        Begin
        OPEN C1;
        LOOP
        EXIT WHEN C1%NOTFOUND;
        SELECT COUNT(*)INTO V_SHU FROM TABLE WHERE 唯一标记=C1;
        IF V_SHU>0 THEN
        DELETE TABLE WHERE WHERE 唯一标记=C1;
        END IF;
        INSERT INTO TABLE (SELECT * FROM TABLE1 WHERE 唯一标记=C1;)
        CLOSE C1;
        END;
      

  13.   

    100多个表的话,每个表都要编存储过程,并且每个表主键也不同,这是一个工作量很大的工作!oralce作的太不易用了,这点赶不上sql server.