|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 8 ![]() |
Bonjour,
j'ai un petit problème pour mettre à jour une table de ma base de données. Actuellement, la structure de ma table est la suivante : create table T1 (COL1 char(10) not null, COL2 date not null, ...); La clé de ma table est composée de COL1 et de COL2. Pour les besoins d'une mise à jour fonctionnelle, ma table T1 aura désormais la structure suivante : create table T1 (COL1 char(10) not null, COL2 number(6,0) not null, ...); c'est à dire que la zone de date est supprimée au profit d'une zone numérique qui est en fait un compteur s'incrémentant de 1 en 1, en groupant les enregistrements par COL1. create table T2 as select * from T1; alter table T1 drop column COL2; alter table T1 add COL2 number(6,0); Mon problème est que la requête que je voulais exécuter pour mettre à jour cette table ne fonctionne pas correctement : update T1 set COL2=(select max(COL2)+1 from T1 a where a.COL1=T1.COL1); car les enregistrements ayant la même valeur de COL1 ont également la même valeur pour COL2 (il ne recalcule pas à chaque lecture/mise à jour). Il faudrait, je suppose, une sorte de requête magique du style : update T1 set COL2=rownum group by COL1; Auriez-vous une solution pour m'aider, SVP ? Merci d'avance. Cordialement, Lionel |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Quelque chose comme ça
Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 8 ![]() |
Je suis sous Oracle 11g, par contre, lorsque j'essaie d'exécuter la requete du merge, j'ai une erreur au niveau de l'appel de la fonction rank() :
ORA-30484: absence de specification de fenetre pour cette fonction |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : janvier 2006 Messages : 8 ![]() |
OK c'est bon , ça fonctionne avec les parenthèses au bon endroit.
MERCI ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com