Как создать последовательность базы данных, которая отличается для разных каналов?
У нас есть одно требование, когда разные последовательности базы данных должны поддерживаться для разных каналов. Пример: ABC-SQN1, XYZ-1 и номера последовательностей должны быть увеличены на основе каналов. Есть ли способ, которым мы можем достичь этого.
Спасибо
1 ответ
Ваш вопрос неясен. Пожалуйста, опишите требования более подробно. Я понимаю, что вы хотите иметь несколько последовательностей и условно увеличивать их так:
create sequence chanel1_seq INCREMENT BY 1 START WITH 1;
create sequence chanel2_seq INCREMENT BY 1 START WITH 1;
create sequence chanel3_seq INCREMENT BY 1 START WITH 1;
а затем получить доступ к последовательности, установленной функцией, а не напрямую:
create or replace function get_seq_val(chanell in varchar2) return varchar2 is
begin
if (chanell = 'CH1') then
return 'CH1' || chanel1_seq.nextval;
elsif (chanell = 'CH2') then
return 'CH2' || chanel2_seq.nextval;
elsif (chanell = 'CH3') then
return 'CH3' || chanel3_seq.nextval;
end if;
return '';
end;
И получить значение по:
select get_seq_val('CH1') from dual;