あなたはこれを行うには、動的SQLを使用することができます。たとえば、このコードは、シーケンスのリストのそれぞれから次の10,000の値を選択します。あなたは配列に対してDDLを発行する能力を持っていた場合
DECLARE
l_num INTEGER;
BEGIN
FOR seq IN (select *
from all_sequences
where sequence_name in (<<list of 50 sequences>>)
and sequence_owner = <<owner of sequences>>)
LOOP
FOR i IN 1 .. 10000
LOOP
execute immediate
'select ' || seq.sequence_owner || '.' || seq.sequence_name || '.nextval from dual'
into l_num;
END LOOP;
END LOOP;
END;
、あなたはシーケンスから一つの値を選択し、INCREMENT
10,000を設定するために同様のアプローチを使用することができ、かつ1まで戻ってINCREMENT
を設定(または任意のそれは今です)。
これは素晴らしいです。私は自動的にこれを行うには、関連する列の最大値からシーケンスの次の値を減算することによって、各シーケンスに必要なループの数を計算することができます。私はSQLがそのような機能を持っていたことに気付かなかった。ありがとうございました! – Jeremy