Bonjour,
je vous explique ma problématique : j'ai une table "FOMASS_DATA" avec deux colonnes old_act_id et new_act_id. Le old_act_id n'est pas unique (la clé primaire se fait avec une autre colonne). Je voudrais en un seul Update assigné le même new_act_id (avec une séquence) pour les old_act_id identique, j'ai réussi à le faire en PL/SQL mais est-ce c'est possible en SQL ?
PL/SQL :
J'ai déjà tenté quelque chose en SQL mais ça ne fonctionne pas, la séquence augmente pour chaque ligne updatée... :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 declare block_seq NUMBER; cursor curs is select old_act_id from fomass_data group by old_act_id; begin for old_act_id_u in curs loop select cfl_s_act_id.nextval into block_seq from dual; update fomass_data set new_act_id=block_seq where old_act_id=old_act_id_u.old_act_id; end loop; end; /
Merci d'avance pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 update fomass_data set new_act_id=cfl_s_act_id.nextval where old_act_id in( select old_act_id from fomass_data group by old_act_id);
Partager