0

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

谢谢

4

1 回答 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;
于 2016-10-14T11:15:23.443 回答