如何为不同的渠道创建不同的数据库序列?

时间:2016-10-14 07:10:18

标签: sql oracle11g database-sequence

我们有一个要求,即需要为不同的渠道维护不同的数据库序列。 EX:ABC-SQN1,XYZ-1和序列号需要根据通道递增。有没有办法实现它。

由于

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;