Bonjour,
Je suis désolé de ce qui va suivre, mais je ne voyait pas d'autres moyens de vous montrer mon problème sans vous présenter l'ensemble de ce que je voulais faire !!!
clients:
id rs adresse cp ville
Je créer ue procédure pour dédoublonner ma table clients, en utilisant l'idée du matchcode
- La création du matchcode sur 12 charactères se passe bien.
Le découpage du matchcode charactère/ charactère dans 12 champs de clients fonctionne parfaitement.
Après cette étape je me retrouve donc avec une table clients comprenant:
clients
id rs adresse cp ville matchcode N1... N12.
Le but de ce decoupage est de vérifier l'existence dans ma table que pour la ligne 1 (table clients) N1 il n'existe pas de N1 identique.
Si c'est le cas les champs R1.... R12 que je crée à ce moment là prend la valeur 1 sinon la valeur 0
Après un premier passage je compte R1+...+R12 et en fonction d'un certain lambda je sors les lignes correspondantes.
Voilà le but et le fonctionnement théorique de ma fonction !!!!
Thecniquement mon code se présente ainsi
Compte tenu d'un grand nombre d'erreur j'ai décidé d'effectuer ce test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 2 Curseurs identiques: declare cursor select N1...N12 from clients 2 Boucles while: chacune stockant dans des variables les valeurs de ces 2 curseurs les différents jeux de test sur ces variables Insertion des doublons dans la table doublon
clients:
2 lignes de données
id adresse rs cp ville matchcode N1..N12 .....
1213
12
Test :
TATA TOTO
J'utilise toujours mes 2 boucles de la même facon, sauf que je fais sauter mes tests sur les variables et que j'utilise juste les syntaxes de boucles.
J'insert ensuite id et rs dans test
Je pensais ainsi me retrouver avec 2 lignes dans ma table hors j'en ai 4!!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 while implémentation curseur1 dans variable => ligne1 puis ligne 2 clients while implémentation curseur2 dans variable => ligne 1 puis ligne2 clients if id_cur1 <> id_cur2 insert into test(TATA, TOTO) select id,rs from clients; end while; end while;
1213
12
1213
12
C'est comme si chaque boucle était exécuté 2 fois !!
Quelqu'un aurait-il une idée comment cela arrive ? est-ce normal ?
Partager