我在导入的时候遇到这样的错误IMP-00017: following statement failed with ORACLE error 1:
 "BEGIN   DBMS_JOB.ISUBMIT(JOB=>226,WHAT=>'JBNS_UTIL.collect();',NEXT_DATE=>T"
 "O_DATE('2009-12-04:15:00:00','YYYY-MM-DD:HH24:MI:SS'),INTERVAL=>'round(sysd"
 "ate, ''hh'') + 1/6',NO_PARSE=>TRUE); END;"
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (SYS.I_JOB_JOB) violated
ORA-06512: at "SYS.DBMS_JOB", line 97
ORA-06512: at line 1
About to enable constraints...
Import terminated successfully with warnings.请大家帮帮我。
我现在看到这个我查了也没查出什么名堂。
碰到约束,那么该如何解决呢。
我想重新将SYS.DBMS_JOB重新导入进去。
./imp zhang/zhang@orcl tables=DBMS_JOB file=/home/jbns/200912040838.dmp fromuser=SYS ignore=y
我试着写了条这样的导入语句
可是没有找到sys。
没有找到DBMS_JOB 这个表。
我晕,我导入的是一个数据库,
我现在该怎么做才能成功的导入呢。很抓狂阿。

解决方案 »

  1.   


    把这个Job 删除掉,在导入试试,如果导入没有问题,在手动的在新库上把JOB建上.imp user/pwd file=.. fromuser=.. touser=..
    ------------------------------------------------------------------------------
    Blog: http://blog.csdn.net/tianlesoftware
    网上资源: http://tianlesoftware.download.csdn.net
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
    Q Q 群:62697716
      

  2.   

    你的目标数据库里,已经有job=226的JOB。
    而SYS.job$表里,job字段有唯一约束,所以该JOB无法导入。SELECT * FROM dba_jobs
    WHERE job=226;确认下。
    看你的TNSNAME,应该是测试库玩玩的,直接删除该JOB,再导入~
      

  3.   

    恩,确实是jobs.
    我查了这个226存在。
    我这是导入在另外一个用户下面的。
    那么我把这个226改为227,手动提交一次。
    那么会有影响吗?
    这个226导入在a用户。
    这个227导入在b用户。
    会有影响吗?
      

  4.   

    我觉得会有影响,因为你的目标数据库里,已经有job=226的JOB。 
      

  5.   

    直接把所有job都删掉不就好啦?把下面这段放到你的sqlplus里面区执行一下declare 
    cr_job sys_refcursor;
    var_job_id number;
    begin
         --下面改成你自己的用户名
    open cr_job for select job from user_jobs where (priv_user='SMSSENDER' or priv_user='CTSC' );
    loop
    fetch cr_job into var_job_id;
    exit when cr_job%NOTFOUND;
    dbms_job.remove(var_job_id);
    end loop;
    close cr_job;
    commit;
    end;
    /