drop procedure test;
delimiter ;;
CREATE procedure test()
-- 取动态sql的值
-- 目前只测试出,在 where 后面, 可以用 ?,类似于 java的 preparestatement写法,
-- 表名,查询字段 是否可以也用? 代替,目前没有测试成功
begin
DECLARE v_sqlcounts varchar(500);
DECLARE recordcount varchar(500);
set v_sqlcounts = concat('select * from test where id > ?');
set @sqlcounts := v_sqlcounts;
#预处理动态SQL
set @b=3;
prepare stmt from @sqlcounts;
#传递动态SQL内参数
execute stmt using @b;
deallocate prepare stmt;
#获取动态SQL语句返回值
SELECT @b;
end
;;
delimiter ;
call test();
转载请注明:IT运维空间 » 批处理 » mysql 5.7.20 动态sql 传入参数
继续浏览有关 数据库技术文章/教程 的文章
发表评论