--使用明細表
--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.自動執行 逛螞蟻莊園喂小雞 任務 ...