网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > PL/SQL > mysql存储过程写法—动态参数运用-PLSQL  

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

2008-07-08  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

        --删除

         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);

网管u家www.bitscn.net

         select v_sql; 网管朋友网www_bitscn_net

        --注意:prepare(预处理)execute stmt using @var,只能跟@var变量,declare和传入的变量不行!!!
         set @v_sql=v_sql;
         prepare stmt from @v_sql;
         EXECUTE stmt ;
         deallocate prepare stmt;
        end; 网管网www_bitscn_com

网管下载dl.bitscn.com

        --调用

         call up_common_select('admin_authority');
网管有家bitscn.net

        注意事项 中国网管联盟bitsCN.com

        1  mysql5.0.13之后支持在存储过程中调用prepare 网管有家bitscn.net

        2  prepare stmt from 'select * from ?';  (错) 网管u家u.bitsCN.com

            mysql5.0.24,prepare尚不支持 表名做变量! 网管u家u.bitsCN.com

            解决方案:用 contat()函数,组合字符串 网管u家bitscn.net

        3  execute stmt [using @var,@var2] 网管bitscn_com

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

网管u家www.bitscn.net

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

网管bitscn_com

TAGs参数   运用   动态   存储   过程       prepare   stmt   变量   v_sql    
 上一篇:从Oracle、SQLServer中取得注释-PLSQL   下一篇:利用索引提高SQL Server数据处理效率-PLSQL
mysql存储过程写法—动态参数运用-PLSQL 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: