Bonjour,

J'ai créé la fonction suivante, dans le but de l'exécuter dans une requête:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
DROP FUNCTION IF EXISTS GetOptionValue;
 
CREATE FUNCTION GetOptionValue(p_instance VARCHAR(64), p_code VARCHAR(32))
RETURNS VARCHAR(256)
BEGIN
	DECLARE value VARCHAR(256);
 
	SELECT `value` FROM `GLOBAL_PARAMETERS`
	WHERE `instance`=`p_instance` AND UCASE(`code`)=UCASE(`p_code`)
	LIMIT 1
	INTO value;
 
	RETURN value;
END|
Le problème c'est que l'appel de ma fonction me renvoie toujours NULL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
mysql> select GetOptionValue( @cur_inst, 'WS_Port' );
+----------------------------------------+
| GetOptionValue( @cur_inst, 'WS_Port' ) |
+----------------------------------------+
| NULL                                   | 
+----------------------------------------+
1 row in set (0.00 sec)
Pourtant si j'appelle la requete directement j'ai bien une valeur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
mysql> SELECT `value` FROM `GLOBAL_PARAMETERS` WHERE `instance`=@cur_inst AND UCASE(`code`)=UCASE('WS_Port');
+-------+
| value |
+-------+
| 6000  | 
+-------+
1 row in set (0.00 sec)

Je pense avoir oublié quelque chose, on dirait que le résultat n'est pas placée dans la variable.

ANY IDEA ??