注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

古城风~~~

竹密无妨溪水过,天高不碍白云飞。这天下总有一份是属于我古城的天地!

 
 
 

日志

 
 

mysql存储过程写法—动态参数运用   

2008-12-30 11:11:55|  分类: 数据库(oracle,m |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

资料来源:http://oracle.chinaitlab.com/PLSQL/755570.html

 

    --删除

         drop procedure if exists up_common_select

        --创建

        CREATE  PROCEDURE `up_common_select`

        (

         in t_name varchar(50)

        )

        begin

         declare v_sql varchar(500);

         set v_sql= concat('select * from ',t_name);

         select v_sql;

        --注意:prepare(预处理)execute stmt using @var,只能跟@var变量,declare和传入的变量不行!!!

         set @v_sql=v_sql;

         prepare stmt from @v_sql;

         EXECUTE stmt ;

         deallocate prepare stmt;

        end;

        --调用

         call up_common_select('admin_authority');

        注意事项

        1  mysql5.0.13之后支持在存储过程中调用prepare

        2  prepare stmt from 'select * from ?';  (错)

            mysql5.0.24,prepare尚不支持 表名做变量!

            解决方案:用 contat()函数,组合字符串

        3  execute stmt [using @var,@var2]

             必须是@var形式的变量,传入的参数变量,declare变量不行

        4.  deallocate prepare stmt; 显式的释放prepare,如果不释放,mysql会释放,!

  评论这张
 
阅读(352)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017