Как создать последовательность базы данных, которая отличается для разных каналов?

У нас есть одно требование, когда разные последовательности базы данных должны поддерживаться для разных каналов. Пример: 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;
Другие вопросы по тегам