create trigger a_tri
before insert or update or delete on a
for each row
declare
str varchar2(100);
v_date varchar2(10);
begin
select max(col_date) into v_date from a;
if to_char(sysdate,'yyyymmdd')>substr(v_date,1,8) then
str:='drop SEQENCE ...';
execute immediate str;
str:='create SEQENCE ...';
execute immediate str;
end if;
select seq_name.nextval into :new.id from a;
end;
/