ORACLE 觸發器,儲存過程及JOB

2021-04-01 09:47:15 字數 2158 閱讀 4108

一、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

asbegin

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

儲存過程及觸發器

了解儲存過程的概念 優點 熟練掌握建立儲存過程的方法 熟練掌握儲存過程的呼叫方法 了解觸發器的概念 優點 掌握觸發器的方法和步驟 掌握觸發器的使用 oracle,plsql 功能要求 借書時要求輸入借閱流水號,借書證號,圖書編號。即該儲存過程有3個輸入引數 借書時,借書日期為系統時間。圖書的是否借出...

oracle儲存過程和觸發器

過程 建立過程,create procedure語句可以用於建立過程,簡化語法如下 create or replace procedure procedure name parameter name in out in out type begin procedure body end parame...

Oracle儲存過程,函式,觸發器

一 儲存過程的定義 1 過程 多次編譯 多次執行 過程實現計算器 declare p1 number 1 p2 number 2 sign varchar2 3 begin if sign then syso p1 p2 elsif sign then syso p1 p2 elsif sign t...