做一个小项目时,需要做到登录密码输入三次错误,锁定该账号,然后在第二天凌晨零点的时候,解锁所有锁定账号。这个可以在表中加上一个时间戳字段,然后后期比对时间戳字段来对相应的账号进行解锁,我比较偷懒,就想着用oracle定时执行任务来做一个批量自动处理,把这个交个数据库自己去执行,省下写方法去比对的操作。现将我oracle语句记录如下,方便大家学习以及未来自己忘记时候回头重新回顾。(其中涉及job以及存储过程的内容)
--------创建定时执行任务
----创建需要定时执行的存储过程:
----功能:修改t_user表和t_administrator表中status不为0的所有记录的status修改为0
create or replace procedure update_status_userandadmin
is
begin
update t_user set status = 0 where status <> 0;
update t_administrator set status = 0 where status <> 0;
end;
/
----创建JOB(待测试)
----功能说明:每日凌晨0点定时执行存储过程
declare update_job_status number;
begin
dbms_job.submit(update_job_status,'update_status_userandadmin;',sysdate,'trunc(sysdate)+1');
commit;
end;
/
希望这段sql语句对大家有用,也算记录一段我的学习经历,如果有不妥的地方,希望大家指正,谢谢!