Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/11/2007, 09h46   #1
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Par défaut procédure stockée : erreur 1329

Bonjour

Lors de l'exécution d'une procédure stockée j'obtiens l'erreur :

Citation:
No data - zero rows fetched, selected, or processed (Error 1329)
J'ai compris que c'est parce qu'il n'y a plus d'enregistrement à récupérer, mais comment éviter l'erreur ?

La procédure en question.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
DELIMITER $$
 
DROP PROCEDURE IF EXISTS `hipparcos`.`SET_STARS_PAIRS` $$
CREATE PROCEDURE `STARS_PAIRS`()
BEGIN
 
  DECLARE var_id_hip1 VARCHAR(10);
  DECLARE var_id_hip2 VARCHAR(10);
  DECLARE var_dot_prod FLOAT;
  DECLARE var_mag_1 FLOAT;
  DECLARE var_mag_2 FLOAT;
  DECLARE var_ra_1 FLOAT;
  DECLARE var_dec_1 FLOAT;
  DECLARE var_ra_2 FLOAT;
  DECLARE var_dec_2 FLOAT;
  DECLARE var_num1 INTEGER;
  DECLARE var_num2 INTEGER;
 
  DECLARE curseur1 CURSOR FOR SELECT `id`, `ra_d`, `dec_d`, `mag`, `num` FROM catalog WHERE mag < 0 ORDER BY num;
  DECLARE curseur2 CURSOR FOR SELECT `id`, `ra_d`, `dec_d`, `mag`, `num` FROM catalog WHERE mag < 0 AND num > var_num1 ORDER BY num;
 
 
  OPEN curseur1;
 
  LOOP
    FETCH curseur1 INTO var_id_hip1, var_ra_1, var_dec_1, var_mag_1, var_num1;
 
    OPEN curseur2;
 
    LOOP
      FETCH curseur2 INTO var_id_hip2, var_ra_2, var_dec_2, var_mag_2, var_num2;
 
      SET var_dot_prod = var_ra_1*var_dec_1 + var_ra_2*var_dec_2;
 
      INSERT INTO paires (`id_hip1`, `id_hip2`, `dot_prod`, `mag_1`, `mag_2`, `ra_1`, `dec_1`, `ra_2`, `dec_2`, `num_1`, `num_2`)
      VALUES (var_id_hip1, var_id_hip2, var_dot_prod, var_mag_1, var_mag_2, var_ra_1, var_dec_1, var_ra_2, var_dec_2, var_num1, var_num2);
 
    END LOOP;
 
    CLOSE curseur2;
 
  END LOOP;
 
  CLOSE curseur1;
 
END $$
 
DELIMITER ;
Le but est le suivant : j'ai dans une table (catalog) une liste d'étoiles et je souhaite enregistrer dans la table paire toutes les paires possible.

Actuellement l'erreur se produit dans la deuxième boucle.
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 10h21   #2
Expert Confirmé
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Tu n'as pas de condition de sortie de boucle....

Regarde un bon exemple ici : http://dev.mysql.com/doc/refman/5.0/en/cursors.html
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2007, 11h35   #3
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
merci, j'ai réussi
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h50.


 
 
 
 
Partenaires

Hébergement Web