2016-06-05 5 views
0

I Prozedur mysql gespeichert haben, und ich will, dass und Prozedurnamen nennen in einem Variablen i vorbereitete Anweisungen verwendet, aber es gab mir einen Fehler,Call gespeicherte Prozedur, wenn Prozedurnamen in einer Variablen in mysql

im kein Experte in Mysql.

hier ist die vorbereitete Anweisung

> PREPARE stmt1 FROM 'CALL ? (?,?,?)'; 
    SET @q = 'sys_search'; 
    SET @a ='All_Employees'; 
    SET @b = 1; 
    SET @c = 1; 
    EXECUTE stmt1 USING @q,@a,@b,@c; 

kann mir die Lösung geben?

Antwort

0

Ich glaube nicht, dass Sie eine gespeicherte Prozedur mit dynamischer Abfrage ausführen können. Erstellen Sie stattdessen die dynamische Abfrage mit der in Ihrer Prozedur beteiligten SELECT und führen Sie diese aus.

0

@Rahul, @Tim Biegeleisen Vielen Dank für Ihre Antworten. Ich habe diese Anweisungen verwendet, um zu arbeiten.

SET @q = 'sys_search'; 
SET @q2 = CONCAT('CALL ',@q,'(?,?,?)'); 
PREPARE stmt1 FROM @q2; 
SET @a = 'All_Employees'; 
SET @b = 1; 
SET @c = 1; 
EXECUTE stmt1 USING @a, @b,@c; 
Verwandte Themen