zoukankan      html  css  js  c++  java
  • ORACLE----触发器,存储过程及JOB

    一、Oracle中创建自增的ID字段
    1、创建序列
     create *sequence_name*  increment by 1 start with 1 maxvalue 999999999;
    2、创建触发器---(创建一个基于该表的before insert 触发器,在触发器中使用该SEQUENCE)
    create or replace trigger *triger_name*
    before insert on       *table_name*
    referencing old as old new as new for each row
    begin
    select  *sequence_name.nextval into :new.id from dual;
    end;
    /
    二、ORACLE中JOB的应用
    1、创建存储过程
    create or replace procedure    *pro_name
    as
    begin
     insert into agri_exhibition_basecur (messid,title,type,pub_date)   select id,title,sort,pub_date from agri_message  where    (trunc(sysdate-pub_date)=0 and rownum<6) and sort='供' ;
     insert into agri_exhibition_basecur (messid,title,type,pub_date)   select id,title,sort,pub_date from agri_message  where    (trunc(sysdate-pub_date)=0 and rownum<6) and sort='求' ;
    end;
    /
    2、创建JOB
    variable jobdxm number;
    begin 
    dbms_job.submit(:jobdxm,'exhi_pro_dxm;',sysdate,'trunc(sysdate,''dd'')+32.5/24');
    end;
    三、收集的一个简单的JOB实列
    1、创建测试
    SQL> create table a(a date);

    表已创建。

    2、创建一个自定义过程
    SQL> create or replace procedure test as
      2  begin
      3  insert into a values(sysdate);
      4  end;
      5  /

    过程已创建。

    3、创建JOB
    SQL> variable job1 number;
    SQL> 
    SQL> begin
      2  dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440');  --每天1440分钟,即一分钟运行test过程一次
      3  end;
      4  /

    PL/SQL 过程已成功完成。

    4、运行JOB
    SQL> begin
      2  dbms_job.run(:job1);
      3  end;
      4  /

    PL/SQL 过程已成功完成。

    SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;

    时间
    -------------------
    2001/01/07 23:51:21
    2001/01/07 23:52:22
    2001/01/07 23:53:24

    5、删除JOB
    SQL> begin
      2  dbms_job.remove(:job1);
      3  end;
      4  /

    PL/SQL 过程已成功完成。
    6、一些必要的参数
    修改initsid.ora参数
    job_queue_processes = 4
    job_queue_interval = 10
    job_queue_keep_connections=true

    修改可执行作业个数为20个
    ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20

    修改取消限制模式
    ALTER SYSTEM DISABLE RESTRICTED SESSION;

    7、两个必要的表
          user_jobs及dba_jobs_running

    8、相关的几个JOB操作
    删除job:dbms_job.remove(jobno);
    修改要执行的操作:job:dbms_job.what(jobno,what);
    修改下次执行时间:dbms_job.next_date(job,next_date);
    修改间隔时间:dbms_job.interval(job,interval);
    停止job:dbms.broken(job,broken,nextdate);
    启动job:dbms_job.run(jobno);

    转载地址:http://blog.csdn.net/cicada688/article/details/7077730

  • 相关阅读:
    thinkphp 防止sql注入
    Thinkphp模板怎么使用自定义函数
    Jquery 获取文件内容
    php,Allowed memory size of 8388608 bytes exhausted (tried to allocate 1298358 bytes)
    thinkphp 定位查询 Model:last您所请求的方法不存在!
    if condition volist
    thinkPHP 无法create,无法插入数据,提示非法数据对象
    eclipse 最有用的10个快捷键
    button 禁止
    thinkphp显示重复两次
  • 原文地址:https://www.cnblogs.com/wllcs/p/6248274.html
Copyright © 2011-2022 走看看