Bonsoir,
je vais tenter d'être le plus clair possible dans mon problème.
J'ai créé une procédure stockée avec plusieurs paramètres d'entrée.
Dans cette procédure, j’exécute une requête qui remonte une valeur (ex : 'VILLE').
1 2 3
|
SELECT param FROM table WHERE ...;
--> VILLE |
Cette valeur va me permettre de savoir quel est le paramètre (portant le même nom) que je dois tester (dans notre cas paramètre VILLE).
Pour faire cela j'utilise un PREPARE :
1 2 3 4 5 6 7 8 9 10 11 12 13
| CREATE DEFINER=`root`@`localhost` PROCEDURE `TEST`(CODE_POSTAL VARCHAR(5), VILLE VARCHAR(10))
BEGIN
set @val = SELECT param FROM table WHERE ...;
/* @val = 'VILLE' */
set @sql_text = CONCAT('SELECT ', @val);
PREPARE REQ FROM @sql_text ;
EXECUTE REQ;
DEALLOCATE PREPARE REQ;
END |
MySQL me retourne l'erreur suivante :
Error Code: 1054. Unknown column 'VILLE' in 'field list'
Or lorsque je fait un SELECT de @sql_text, j'obtiens << SELECT VILLE >> et si j’exécute cette requête j'obtiens bien ma valeur d'entrée.
Comment puis-je faire pour récupérer la valeur du paramètre d'entré qui m’intéresse ?
ex : PARIS si j’exécute la procédure stockée -->
CALL TEST('75000', 'PARIS');
En espérant que quelqu'un ait compris mon problème.
Cordialement,
Xavi13
Partager