Один из способов, который вы можете попробовать, - это динамическое построение оператора create procedure
в SQL, затем использование select into outfile
для выгрузки оператора на локальный диск, а затем исходный файл для загрузки процедуры в БД.
Вот краткий пример:
set @proc_name = 'my_proc';
set @body1 = 'select ''hello''; ';
set @body2 = 'select ''world''; ';
set @delimiter = '$$';
set @create_proc_stmt = concat(
'create procedure ',
@proc_name,
'() begin ',
@body1,
@body2,
' end ',
@delimiter
);
select @create_proc_stmt into outfile '/tmp/create_proc_stmt.sql';
delimiter $$
\. /tmp/create_proc_stmt.sql
delimiter ;
call my_proc();