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:
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.
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 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;
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
Partager