例子
set @sql='xxx';
prepare stmt from @sql;
execute stmt;
deallocate prepare stmt;
select @curd1;
1、在prepare stmt from 命令后面的变量不能是自定义变量,必须是用户变量或者全局变量
2、存储动态SQL的值的变量也不能是自定义变量,必须是用户变量或者全局变量
例子:
set @sql='select cur,cur2 into @curd1,curd2 from mytable'
prepare stmt from @sql;
3、存储过程非线程安全的,由于在动态SQL中使用用户变量,在多线程环境下,这个变量会被多个线程共享,因此必须加锁,方法如下:
declare lockstatus int;
if get_lock('锁名称',60) then
.....
select release_lock('锁名称') into lockstatus;
end if;
get_lock中第一个参数是锁得名称,自定义的,当其他线程也请求这个锁时就会被锁定。
第二个参数是等待时间,即60秒内获取锁,否则失败。
release_lock只接受 锁名称
release_lock不能单独使用,如
release_lock('lock1');
会编译不同步
必须在语句中使用,如select release_lock('lock1') into lockstatus;
比较怪异。
估计get_lock也是,但没试验。
4、JAVA程序调用方法(hibernate)
String sqlname = "call 存储过程名称(?..参数列表)";
Query query = null;
query = session.createSQLQuery(sqlname);
query.setParameter(1,..);
...
List list = query.list();
list.get(0); //这个就是存储过程中的select @curd1; 的查询结果
分享到:
相关推荐
本篇文章是对mysql存储过程在动态SQL内获取返回值进行了详细的分析介绍,需要的朋友参考下
delphi如何调用sql存储过程,并获取结果 adostoredproc1.Close; adostoredproc1.ProcedureName:='sp_thchl'; adostoredproc1.Parameters.Clear; adostoredproc1.Parameters.CreateParameter('out',ftInteger,...
本文实例讲述了Python调用MySQL存储过程并获得返回值的方法。分享给大家供大家参考。具体实现方法如下: try: conn = MySQLdb.connect ( host = 'localhost', user = 'root', passwd = 'pass', db = 'prod', ...
本文实例讲述了VB.NET调用MySQL存储过程并获得返回值的方法。分享给大家供大家参考。具体实现方法如下: Dim myConnectionString As String = Database= & myDatabase & _ ;Data Source= & myHost & _ ;User Id= ...
代码如下://存储过程//Create PROCEDURE MYSQL// @a int,// @b int//AS// return @a + @b//GOSqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[“LocalSqlServer”].ToString())...
本文实例讲述了mysql存储过程原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是存储过程 存储过程的创建 存储过程的使用 查看存储过程 修改存储过程 删除存储过程 首发日期:2018-04-17 什么...
本文实例讲述了C#中调用MySQL存储过程的方法。分享给大家供大家参考。具体如下: 这段代码演示在 C# 程序中调用 MySQL 的存储过程,没有返回值,没有参数传递。 MySqlConnection myConnection; myConnection = new ...
本文实例讲述了MySQL存储过程概念、原理与常见用法。分享给大家供大家参考,具体如下: 1、存储过程的概念 在一些语言中,如pascal,有一个概念叫“过程”procedure,和“函数”function,在php中,没有过程,只有...
存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程和函数可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。...
本文实例讲述了php中调用执行mysql存储过程然后返回由存储过程返回的值,分享给大家供大家参考。具体分析如下: 调用存储过程的方法. a。如果存储过程有 IN/INOUT参数,声明一个变量,输入参数给存储过程,该变量是一对,...
在函数和储存过程中使用的变量declear declear a int unsigned default 1; 这种变量需要设置变量类型 而且只存在在 begin..end 这段之内 select .. into.. 直接将表内内容赋值到指定变量当中 select name,bid ...
1.2 关于本手册 1.2.1 本手册中使用的约定 1.3 MySQL的历史 1.4 MySQL的主要特征 1.5 MySQL稳定性? 1.6 顺应2000年 1.7 SQL一般信息和教程 1.8 有用的MySQL相关链接 ...
mysql存储过程的概念: 存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段。 mysql函数的概念: 函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-defined function UDF) ...
+ 1.2.1 本手册中使用的约定 o 1.3 MySQL的历史 o 1.4 MySQL的主要特征 o 1.5 MySQL稳定性? o 1.6 顺应2000年 o 1.7 SQL一般信息和教程 o 1.8 有用的MySQL相关链接 * 2 MySQL 邮件列表及如何提问或报告错误...
整篇文章为个人学习心得,之后会持续发表mysql高级进阶,javaweb框架等知识点文章,制作不易,加个关注 存储过程 优点: 提高开发效率,提高应用程序的性能,简化程序开发人员的操作,减少应用程序和是数据库服务器...
1.2 关于本手册 1.2.1 本手册中使用的约定 1.3 MySQL的历史 1.4 MySQL的主要特征 1.5 MySQL稳定性? 1.6 顺应2000年 1.7 SQL一般信息和教程 1.8 有用的MySQL相关链接 2 MySQL ...
在mysql中,我们可以使用SIGNAL和RESIGNAL语句来引发存储过程中的错误条件。 先来看,SIGNAL语句。我们通常使用SIGNAL语句在存储的程序(例如存储过程,存储函数,触发器或事件)中向调用者返回错误或警告条件。 ...
存储过程是一种存储在数据库库中的程序(就像正规语言里的子程序一样),准确的来说,MySql支持的“routine(例程)”有两种:一是我们说的存储过程,二是在其它sql语句中可以返回值的函数(使用起来和mysql预装载的...
MySQL系列—-创建存储函数、游标的使用创建存储函数输入任意三个数,结果输出它们的最小值调用函数使用游标使用游标从表中查询信息从sc表中查询成绩高于80分的学生信息有帮助的别忘了点个赞再走哦!! 本期是MySQL...