我们有一个要求,即需要为不同的渠道维护不同的数据库序列。 EX:ABC-SQN1,XYZ-1和序列号需要根据通道递增。有没有办法实现它。
由于
答案 0 :(得分: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;