Сброс последовательности по году, а не по минимальному или максимальному значению - PullRequest
0 голосов
/ 28 июня 2018

Создать последовательность, которая будет сбрасываться в зависимости от года. Рассмотрим последовательность с 9 цифрами, которая начинается с 000000001, а максимальная - 999999999.

Let Date 30.12.2017 и seq 000012849 Поэтому, когда дата 01.01.2008, я хочу, чтобы seq был 000000001.

1 Ответ

0 голосов
/ 28 июня 2018

Создайте повторяющееся запланированное задание, которое сбрасывает последовательность в полночь 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;
/
...