Bonjour,
Ca fait un petit moment que j'essaie de créer une procedure stockée qui peut prendre un nom de base en parametre.
Ce qeu j'ai trouvé dans mes recherches :
On ne peut changer de base dans une procedure stockée qu'en utilisant les prepared statement.
Mon pb etant le suivant : il me faut un curseur sur la requete.
en gros, voici ce que ca devrait donner :
A priori, on ne peut pas faire de prepared statement sur un resultat mis en curseur. Me trompe-je?
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
16
17
18
19
20
21
22
23 CREATE PROCEDURE `maProcedure`(pBase varchar(50)) BEGIN declare vbar int(6); declare v_fin_curseur boolean default false; declare curs CURSOR for select bar from foo where foobar in (select foobar from pBase.fooD); declare continue handler for not found set v_fin_curseur = True; OPEN curs; FETCH curs INTO vbar; WHILE (v_fin_curseur = false) DO #code ici FETCH curs INTO vbar; end while; END$$ DELIMITER ;
Partager