[Oracle] Problemes de doublons
Bonjour a tous.
Tout d'abord, je suis desolé mais j'ai aussi laissé ce message sur le forum PL/SQL car je ne savais pas où le mettre pour avoir plus de chance d'avoir une réponse.
Je debute dans les bases de données et encore plus dans Oracle.
Au boulot, on a une table Document qui contient entre autre une colonne ID_DOCUMENT qui est unique et sans doublons.
On créé une table DOCUMENT_SAV qui contient deux colonnes:
ID_DOCUMENT qui est une copie de la colonne de la table DOCUMENT
ID_INDEXE qui contient tous les nombres de 2000 à x. Cette colonne est aussi unique et sans doublons
en fait, le but est de réindexer les ID_DOCUMENT dans la table DOCUMENT.
Ensuite, je créé une table DOCUMENT_ALEX qui est une copie de la table DOCUMENT.
Et je fait ce code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| declare
cursor c1 IS
SELECT INDEX_DOCUMENT,ID_DOCUMENT
FROM DOCUMENTS_SAV
ORDER BY ID_DOCUMENT;
c11 c1%rowtype;
begin
open c1;
loop
fetch c1 INTO c11;
exit when c1%notfound;
begin
UPDATE DOCUMENTS_ALEX
SET ID_DOCUMENT = c11.INDEX_DOCUMENT
WHERE ID_DOCUMENT = c11.ID_DOCUMENT;
end;
end loop;
close c1;
end; |
Normalement, le curseur parcours la table DOCUMENT_SAV (qui, je le rappelle n'a aucun doublons) et réindexe les ID_DOCUMENT de la table DOCUMENT_ALEX.
Le probleme, c'est que ma table DOCUMENT_ALEX a des doublons elle... Je ne comprend pas trop comment fonctionne les curseurs mais normalement, ils sont censé parcourir ma table DOCUMENT_SAV sans doublons et donc etre unique...
Quelqu'un aurait il une idée parce que c'est malheureusement urgent et que je comprend pas!
Merci beaucoup a vous