oracle dbms job 自動呼叫

2021-04-23 01:51:13 字數 3538 閱讀 3407

--使用明細表

--no            商品編號

--id             人員id

--limit_year   使用年限

--grant_date 發放日付

--stale         是否失效   

--建立乙個oracle內部自動呼叫的儲存過程,隔一分鐘檢查details表,

--如果[發放日付]+[使用年限] > [當前日付], 將[是否失效]設定為1。

drop table details

create table details

(no int ,

id varchar2(4),

primary key(no,id),

limit_year int  not null,

grant_date date,

stale char(1)

)select * from details

-- insert value

insert into details values(1,'1001',2,'20081202',null)

insert into details values(2,'1002',1,'20081202',null)

update details

where

--select sysdate,sysdate - interval  '1'  year from dual

select limit_year from details

drop procedure proc_checkdate

-- 建立儲存過程

create or replace procedure proc_checkdate

as--r_row details%rowtype;

v_stale char(1);

v_date date;

--v_id int;

--v_no char(4);

--v_no int;

--v_id char(4);

cursor c1  is

select * from details ;

begin

--open c1;  

--fetch c1 into r_row;

for i in c1 loop

--v_id := i.id;

--v_no := i.no;

--select 1  into v_stale from details t where t.no = 1 ;

dbms_output.put_line(i.limit_year);

dbms_output.put_line(i.grant_date);

dbms_output.put_line('********************===');

select add_months(i.grant_date, i.limit_year*12) into v_date from details t  where t.no =i.no and t.id = i.id;

dbms_output.put_line('v_date=' || to_char(v_date));

dbms_output.put_line('no=' || i.no);

dbms_output.put_line('id=' || i.id);

dbms_output.put_line('year=' || i.limit_year);

dbms_output.put_line('--------------------');

dbms_output.put_line('current_date=' || current_date );

dbms_output.put_line('v_date=' || v_date );

--select 1 into v_stale from dual where to_date(current_date, 'yyyy/mm/dd') > to_date(v_date,'yyyy/mm/dd');

--select 1 into v_stale  from details t  where current_date > v_date and t.no = i.no and t.id = i.id;

--select 1 into v_stale  from dual  where  current_date > v_date ;

if current_date > v_date then

dbms_output.put_line('!!!!!!!!!!!!!!!!!!!!!!!!!!!');

--dbms_output.put_line('v_stale=' || v_stale);

--v_stale := 1;

update details t set t.stale = '1' where t.no = i.no and t.id = i.id;

end if;

dbms_output.put_line('v_stale=' || v_stale);

--update details t set t.stale = v_stale where v_stale = '1' and t.no = i.no and t.id = i.id;

--select 1 into v_stale  from details t  where current_date > (select add_months(t.grant_date, t.limit_year*12) from details t where t.no =i.no and t.id = i.id ) and t.no = i.no and t.id = i.id;

--update details t set stale = v_stale where t.no = i.no and t.id = i.id ;

end loop;

commit;

--close mycur;

end;

--執行儲存過程

begin

proc_checkdate;

end;

--以下command window中執行

--呼叫dbms_job利用時鐘自動定時和間隔時間執行儲存過程

--******************************=

--定義job

variable myjob number;

begin

dbms_job.submit(:myjob,'proc_checkdate;',sysdate,'sysdate+1/1440');

commit;

end;

--******************************==

--執行job

begin

dbms_job.run(:myjob);

end;

--******************************====

--移除job

begin

dbms_job.remove(:myjob);

end;

自動排料 自動套料

全自主研發自動排料引擎 自動排料軟體 超大規模排料 演算法相關 自動排料即使用計算機軟體實現裁片 服裝衣片,鈑金零件 在規定材料 面料,金屬板材 上的自動布局,並以材料利用率為主要追求目標。目前市面上能看到的知名排料軟體絕大部分是國外軟體。還有一類是使用國外排料引擎的國內排料軟體,所謂排料引擎即核心...

Zabbix 自動發現 自動註冊

zabbix 為使用者提供了高效靈活的網路自動發現功能,有以下優點 ip 範圍 可用的外部服務 ftp ssh web pop3 imap tcp 等 來自 zabbix 客戶端的資訊 僅支援未加密模式 來自 snmp 客戶端的資訊 不支援 發現網路拓撲 網路發現由兩個階段組成 發現和動作 原理 z...

自動執行任務 芭芭農場自動執行,自動簽到

1 專案的作用 1 本專案主要用於自動執行tao金幣活動。2 測試環境 華為p30pro autojs4 tao寶v9 2 專案的功能 a.自動執行tao金幣所有瀏覽任務 b.自動執行 逛好店領一大波金幣 任務 包含瀏覽10s 10金幣任務 收藏店鋪 10金幣 c.自動執行 逛螞蟻莊園喂小雞 任務 ...