Oracle实现数据的自动删除

我有一张表,表字段有用户名,密码,邮箱,是否激活,注册时间
我想用触发器实现这样一个功能:
每天对数据库内的数据检查,如果从注册时间开始,超过七天没激活的账户自动删除。
我需要用java实现,不知可否给点具体的

用触发器实现不是不行,但是存在效率问题。
建议写个存储过程,再建立一个job每天晚上运行一次。
create or replace produce autoDel as
begin
delete from yourtable where 是否激活='N' and 注册时间<sysdate-7;
end
在用建立job
variable job1 number;
begin
sys.dbms_job.submit(job => :job,
what => 'autoDel',
next_date => to_date('01-10-2011 00:00:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'sysdate+1');每天运行过程一次
commit;
end;追问

要直接运行job的话感觉比较麻烦,因为是网页,可否用java来调用这个job,通过网页上的链接来管理呢?如果可以可否请你举例说明调用的方法。

追答

好吧,orcle的job不需要调用,会自动运行。
next_date 参数是下一次运行的时间
interval 是间隔时间,从下次运行开始,每隔interval这么长时间就会自动的运行

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-27
触发器的激活语句是delete\update\insert,显然你缺少触发器激活条件.建议:
整个守护进程,跑个存储过程,create produce yourpro as
delete from yourtable where 是否激活='N' and 注册时间<sysdate-7;
相似回答