小编典典

根据年份重置序列,而不是最小值或最大值

sql

创建一个将根据年份重置的序列。考虑以9位数开头000000001且最大为999999999的序列。

假设Date为30/12/2017,seq为000012849,所以当日期为01/01/2018时,我希望seq为000000001。


阅读 193

收藏
2021-04-07

共1个答案

小编典典

创建一个定期计划作业,作业在每年的1月1日午夜重新设置顺序。

类似于(假设您有YOUR_SCHEMA.RESET_ANNUAL_SEQUENCE执行重置的过程):

BEGIN
  DBMS_SCHEDULER.CREATE_JOB (
    job_name             => 'reset_annual_sequence_job',
    job_type             => 'PLSQL_BLOCK',
    job_action           => 'BEGIN your_schema.reset_annual_sequence; END;',
    start_date           => ADD_MONTHS( TRUNC( SYSTIMESTAMP, 'YY' ), 12 ),
    repeat_interval      => 'FREQ=YEARLY; BYDATE=0101;', 
    enabled              =>  TRUE,
    comments             => 'Annual sequence reset'
  );
END;
/
2021-04-07