異なるチャネルに対して異なるデータベースシーケンスを維持する必要があるという要件が1つあります。 EX:チャンネルに基づいてABC-SQN1、XYZ-1、およびシーケンス番号をインクリメントする必要があります。私たちが達成できる方法はありますか?異なるチャネルで異なるデータベースシーケンスを作成する方法は?
ありがとうございました
異なるチャネルに対して異なるデータベースシーケンスを維持する必要があるという要件が1つあります。 EX:チャンネルに基づいてABC-SQN1、XYZ-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;
こんにちはKacper、助けてくれてありがとう、私たちの要件はここで説明したものと同じです。私は提案されたコードを更新しました。ダイナミックなシーケンス名の作成に関する問題に直面しています。私はPL-SQLの初心者ですが、それがサポートされているかどうかをお聞かせください。コード: '関数の作成または置換get_seq_val(varchar2でのシャネル名)return varchar2 is Channel_identifier VARCHAR2(10); Sequencename varchar2(10):= '_ seq'; SQName varchar2(10); begin Channel_identifier:= chanelname; SQName:= concat(Channel_identifier、Sequencename); return SQName.nextval; end; ' – Sushma
「異なるチャネルで異なるデータベースシーケンスを維持する必要がある」という要件の背後にある理由を説明してください。また、明確な例を示してください。ありがとう。 –