小弟这两天要用的Oracle的定时任务,可是小弟以前没用,还请各位高手帮帮忙 谢谢了!
小弟主要想实现的功能如下:
有一张USER表 包含两个字段,U_NAME, U_ADDRESS 都是VARCHAR(2)的。
现在我想让数据库 每天晚上12点自动执行一次,从USER表查出U_NAME , U_ADDRESS两个字段的值,
然后把这两个字段的值 保存到PERSON表的P_NAME, P_ADDRESS 字段里面!谢谢各位好心人了!

解决方案 »

  1.   


    -- 一个例子:(一个Job,每10分钟自动执行调用hllclientlogon_history_porc存储过程
    variable job1 number;begin 
      dbms_job.submit(:job1,'hllclientlogon_history_porc;',sysdate,'sysdate+1/144');
    end;
    /
      

  2.   

    CREATE PROCEDURE insert_person_proc
    AS
    BEGIN
      INSERT INTO person(p_name,p_address) 
      SELECT u_name, u_address FROM user;
      -- 有啥Where条件自己加
      COMMIT;
    END;
    /
    variable job1 number;begin 
      dbms_job.submit(:job1,'hllclientlogon_history_porc;',sysdate,''TRUNC(SYSDATE+1)'); -- 每天午夜12点
    end;
    /
      

  3.   


    -- 哈哈:我就是来混的分的!
    CREATE PROCEDURE insert_person_proc
    AS
    BEGIN
      INSERT INTO person(p_name,p_address) 
      SELECT u_name, u_address FROM user;
      -- 有啥Where条件自己加
      COMMIT;
    END;
    /
    variable job1 number;begin 
      dbms_job.submit(:job1,'insert_person_proc;',sysdate,''TRUNC(SYSDATE+1)'); -- 每天午夜12点
    end;
    /
      

  4.   

    没想到你的效率这么高啊! 不过这几句
    variable job1 number;begin 
      dbms_job.submit(:job1,'insert_person_proc;',sysdate,''TRUNC(SYSDATE+1)'); -- 每天午夜12点
    end;不是很明白啊?谢谢
      

  5.   


    -- 呵呵,多了个单引号(')-- 修正如下:CREATE PROCEDURE insert_person_proc
    AS
    BEGIN
      INSERT INTO person(p_name,p_address) 
      SELECT u_name, u_address FROM user;
      -- 有啥Where条件自己加
      COMMIT;
    END;
    /
    variable job1 number;begin 
      dbms_job.submit(:job1,'insert_person_proc;',sysdate,'TRUNC(SYSDATE+1)'); -- 每天午夜12点
    end;
    /
      

  6.   

    代码如下:
    CREATE PROCEDURE insert_person_proc
    AS
    BEGIN
      INSERT INTO person(p_name,p_address) 
      SELECT u_name, u_address FROM user;
      COMMIT;
    END;
    variable job number;begin 
      dbms_job.submit(:job,'insert_person_proc;',sysdate,'TRUNC(SYSDATE+1)');
    end;