Bonjour à tous.
Je me permets de faire un peu de nécromancie de topic dans la mesure où ce sujet correspond tout à fait à ce que j'essaie de faire.

Petite présentation du contexte tout d'abord :
J'ai besoin de faire des requêtes avec un nom de table variable dans une procédure stockée en mysql. Après quelques recherches sur le web, il apparait que pour ce faire, je dois utiliser un PREPARE statement.

Courageux et optimiste, je me lance. Oui mais voilà, je récupère une erreur :
"#1312 - PROCEDURE 3620t01.maProcedure can't return a result set in the given context"
Damn..

Après pas mal de recherches cette fois-ci, je retiens que :
-Il n'est pas possible de faire d'utiliser un PREPARE statement dans une fonction ou une procédure stockée SAUF pour les procédures stockées justement DEPUIS la version 5.0.13 de mysql.
Or, je travaille sur la version 5.0.51.

Du coup je ne vois vraiment pas d'où peut venir le soucis.
Si une bonne âme avait une idée..

Pour info, je mets ici la procédure de test que j'ai faite, basée sur celle utilisée plus haut dans ce topic :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
delimiter |
CREATE PROCEDURE maProcedure()
BEGIN
SET @sqlCMD =  CONCAT('select * from ', 'tickets_J');
PREPARE stmt FROM @sqlCMD;
EXECUTE stmt ;
END
et l'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
#1312 - PROCEDURE 3620t01.maProcedure can't return a result set in the given context
Ps : Je précise; si besoin est, que j'ai l'erreur sur le CALL de ma procédure stockée, et pas à la création

Merci d'avance.

Thomas