在存过中执行动态sql的时候有报这个错误,
或者直接不报错,但是动态sql没有被执行
网上很多类似的问题,但是依照改之,运行之,结果还是不行o(╥﹏╥)o
后面还是研究了一下解决方案,记录一下,
ps:我的mysql版本是8.0以上
###正题:
第一步,首先要排除动态SQL没有问题,所涉及的表要存在。
第二步,我们在准备动态SQL之前(也就是prepare *** from @变参名),需要先把存SQL信息的变参名赋值给@变参名。示例如下:
set V_P_SQL := 'DROP TABLE heye_etl.tmp_kri_info';
set @V_P_SQL = V_P_SQL; #需要先 赋值
prepare stmt from @V_P_SQL; #准备好sql语句
EXECUTE stmt; #执行sql
DEALLOCATE PREPARE stmt; #释放准备
最后执行存过果然成功执行了动态sql,
over,(✪ω✪)
有问题可以评论区讨论,一起进步。