数据库里有一张用户表,有出生日期,
怎样才能实现oracle数据库里处理到用户的生日,就会自动在一张生日提醒表里插入记录,这张表里有出生日期,是否已过期三个字段

解决方案 »

  1.   

    写一个存储过程(查找最近的生日,并处理过期数据)
    再创建一个JOB每天执行这个存储过程即可。
      

  2.   

    能否贴点具体的代码?oracle没搞过
      

  3.   

    create or replace procedure pro_demo
    as
    begin
    --增加新的
     insert into 提醒表 select name,birthday,'0' from 用户表 a
     where a.birthday-sysdate between 0 and 7 not exists(select 1 from 提醒表 b where a.name=b.name and b.flag<>'0');
    --处理过期的
     update 提醒表 set flag='1' where flag='0' and a.birthday-sysdate<0;
     commit;
    end pro_demo;
    /
    --创建job sql*plus中
    VARIABLE jobno number;
    begin
          DBMS_JOB.SUBMIT(:jobno, 
                  'pro_demo;', 
                   SYSDATE, 'SYSDATE + 1');
             commit;
    end;
    /简单写了一下,没有进行测试。