加藤美佳,王宗南背后的老虎,snb
一个数据表中包含此数据的录入时间,此数据的初始状态是有效,五天后系统自动置该数据的状态为无效。
创建表
--创建表 create table test(name varchar2(30), passwd varchar2(30),inputtime date,status varchar2(2));
插入数据
--插入数据 declare c_name varchar2(30) := 'TestUser'; c_pass varchar2(30) := 'TestPass'; c_inputTime date; c_status varchar2(2) := '01'; begin select sysdate into c_inputTime from dual; for i in 0..99 loop c_name := c_name || to_char(i); c_pass := c_pass || to_char(i); c_inputTime := c_inputTime-1; dbms_output.put_line('name='||c_name||', passWd='||c_pass||', inputtime='||c_inputTime||' status='||c_status); insert into test (name,passwd,inputtime,status) values (c_name,c_pass,c_inputTime,c_status); c_name := 'TestUser'; c_pass := 'TestPass'; end loop; commit; end;
存储过程
--创建存储过程,用于更新status create or replace procedure pro_test is begin declare NUM number :=5; d date; cursor cur_test is select name,inputtime,status from test where status='01' order by inputtime desc;--创建游标,用于存储结果集 begin select sysdate into d from dual;--获取系统时间 for temp in cur_test loop if round(to_number(d-temp.inputtime))>NUM then update test set status='00' where name = temp.name;--更新表数据 end if; end loop; commit;--提交事务 end; end pro_test;
定时任务
declare job_test number; begin dbms_job.submit(job_test, 'pro_test;',sysdate, 'sysdate+1/24/60');--每分钟执行一次 end;
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Oracle字符串函数length、upper、lower、initcap、 concat、instr、replace
网友评论