procedure stockée renvoi d'un table
Bonjour,
J'ai une procédure stockée qui parcour les enregistrements d'une requête à l'aide d'un curseur.
A chaque passage dans le curseur, je souhaite ajouter le résultat à une variable temporaire. Pour l'instant j'utilise un CONCAT ce qui me donne un résultat en ligne... Est ce possible d'avoir le résultat sous forme de table ??
Voici mon code :
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
| CREATE DEFINER=`adm_dech`@`%` PROCEDURE `test`()
BEGIN
/* Variable du curseur */
DECLARE v_FinCurseur BOOLEAN DEFAULT FALSE;
DECLARE v_Produit INT;
DECLARE v_Poids INT;
/* Declaration du curseur */
DECLARE c_Produit CURSOR FOR
SELECT IdProduit,Poids
FROM PRODUITS;
/* Declaration de l'evenement de fin de parcours du curseur */
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_FinCurseur = TRUE;
/* Initialise ma variable */
SET @strsql='';
/* Ouverture du curseur */
OPEN c_Produit;
REPEAT
FETCH c_Produit INTO v_Produit, v_Poids;
IF NOT v_FinCurseur THEN
IF (@strsql='') THEN
SET @strsql = v_produit;
ELSE
SET @strsql = CONCAT(@strsql , ' ',v_produit);
END IF;
END IF;
UNTIL v_FinCurseur END REPEAT;
/* Fermeture du curseur */
CLOSE c_Produit;
END |
ce qui me donne comme resultat :
+------------------------------------------------------------------------------------------------------------------+
| @strsql |
+------------------------------------------------------------------------------------------------------------------+
| 1 2 3 4 5 6 7 8 9 10 1247 1248 1249 1250 1251 1252 1253 1254 12552 |
+------------------------------------------------------------------------------------------------------------------+
Alors que je voudrais :
+-----------+
| @strsql |
+-----------+
| 1 |
| 6 |
| 1247 |
| 1251 |