会计考友 发表于 2012-8-4 14:06:19

oracle定时更新(JOBS)

 rm.pro_hrm_emp_info_job过程
  需要每天都更新,所以先创建个procedure,再创建个job就可以实现定时更新
  create or replace procedure rm.pro_hrm_emp_info_job is
  zm
  begin
  update rm.hrm_emp_info
  set ages = to_number(TRUNC(nvl((sysdate brith_date) / 365, 0))),
  leng_serv = to_number(TRUNC(nvl((sysdate work_date) / 365, 0))),
  ins_len_ser = to_number(TRUNC(nvl((sysdate ente_appe_date) / 365,
  0)));
  commit;
  end pro_hrm_emp_info_job;
  相应的job
  declare
  jobno number;
  begin
  dbms_job.submit(jobno,’rm.pro_hrm_emp_info_job;’,trunc(sysdate),’trunc(sysdate)+1’);每天零点更新
  commit;
  end;
  /
  分解下job
  dbms_job.submit(jobno, job号,由sys.jobseq生成
  ’rm.pro_hrm_emp_info_job;’, 要执行的procedure
  trunc(sysdate), 下次要执行的时间
  ’trunc(sysdate)+1’); 每次间隔的时间,此处的1标识一天 也可1/1440每一分钟执行一次
  查看
  select * from sys.user_jobs;
  其中创建的jobno(任务号)由sys.jobseq序列生成
  主由packages中的sys.dbms_job执行
  细节可以查看sys.dbms_job包内容。
页: [1]
查看完整版本: oracle定时更新(JOBS)