本帖最后由 chengyi_ming 于 2014-01-28 16:46:44 编辑

解决方案 »

  1.   

    你要分两次执行,第一次执行create or replace procedure abssf as
    begin
      INSERT INTO sc_jc_rm
        (sc_jc_rm.bl_id,
         sc_jc_rm.bl_name,
         sc_jc_rm.fl_id,
         sc_jc_rm.rm_id,
         sc_jc_rm.rm_name,
         sc_jc_rm.area_rm,
         sc_jc_rm.rm_cat,
         sc_jc_rm.rm_type,
         sc_jc_rm.dv_id)
        SELECT rm.bl_id,
               bl.name,
               rm.fl_id,
               rm.rm_id,
               rm.name AS abc,
               bl.area_rm,
               rm.rm_cat,
               rm.rm_type,
               rm.dv_id
          FROM rm, bl
         WHERE rm.bl_id = bl.bl_id;
    end;第二次执行declare
      job1 number;
    begin
      dbms_job.submit(job1, 'abssf;', sysdate, 'sysdate+1');
    end;
      

  2.   

    启动job begin 
    dbms_job.run(:job1);
    end;   报绑定变量 "job1" 未声明
    匿名块已完成 这个是什么问题
      

  3.   

    :job是自动生成的一个job号,你直接把job放进去oracle判断不了。
    先查询出这个号select * from dba_jobs where what = 'abssf;'查出job的值,然后放进你的语句,如 begin  
     dbms_job.run(61);
     end; 
      

  4.   

    首先 你这个过程insert语句需要commit;
    之后就是创建job了[code=sql]DECLARE X NUMBER;
    BEGIN
      SYS.DBMS_JOB.SUBMIT(job       => X,
                          what      => 'abssf;',
                          next_date => sysdate,
                          interval  => TRUNC(sysdate + 1));
    END;
    /
    commit;code]
      

  5.   

    首先 你这个过程insert语句需要commit;
    之后就是创建job了[code=sql]DECLARE X NUMBER;
    BEGIN
      SYS.DBMS_JOB.SUBMIT(job       => X,
                          what      => 'abssf;',
                          next_date => sysdate,
                          interval  => TRUNC(sysdate + 1));
    END;
    /
    commit;[code] 
      

  6.   


    select * from user_jobs where what = 'abssf;'试下这个表