2017-08-25 58 views
-1

是否可以在另一個程序中動態地傳遞程序的名稱?動態傳遞程序名

過程名稱存儲在一個表中,並根據標準名稱會有所不同。

如果可能我該如何實現這一目標?

到目前爲止,我有這樣的事情:

SET $proc = CONCAT('CALL ',$queryString); 

PREPARE stmt FROM CONCAT('CALL ', $queryString); 

EXECUTE stmt; 
+0

'PREPARE stmt FROM $ proc;'然後'EXECUTE stmt;'應該這樣做,因爲已經使用SQL語句設置了$ proc (你的程序CALL)。 – JNevill

+0

你的代碼有什麼問題? – Barmar

回答

0

八九不離十,只是用正確的準備語句的語法:

create procedure sp_exec_proc( 
in_proc char(64) 
) 
begin 

set @proc = concat('CALL ',in_proc); 
prepare stmt from @proc; 
execute stmt; 

end 

然後,您可以通過在程序名稱和可選參數

call sp_exec_proc('sp_my_proc("ABC")')