Bonjour,
je voulais savoir si qq'un avait un script qui permettrait de dropper des sequences existantes appartenant à un user et de les recréer en modifiant la valeur du startwith de la nouvelle sequence avec le next_val de la sequence existante.
Si on pouvait faire un ALTER SEQUENCE pour modifier le start with ça serait bien mais on ne peut pas.
voici un début de script que j'ai élaboré mais il me manque les autres caractéristiques de la séquence:cycle,order etc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 declare v_sql varchar2(255); v_num_seq number; begin -- boucle sur toutes les sequences for cur_rec in (select * from user_sequences) loop -- récup du nextval de la séquence v_sql := 'select ' || cur_rec.sequence_name || '.nextval from dual'; execute immediate v_sql into v_num_seq; v_sql := 'DROP SEQUENCE ' || cur_rec.sequence_name; execute immediate v_sql; v_sql := 'create sequence '|| cur_rec.sequence_name || ' minvalue ' || cur_rec.min_value || ' maxvalue ' || cur_rec.max_value || ' increment by ' || cur_rec.increment_by || ' START WITH ' || v_num_seq; execute immediate v_sql; end loop; end; /
Partager