MySQL带参数的存储过程小例子

存储过程P_GET_CLASS_NAME是根据输入的班级号判断班级名称

存储过程P_INSERT_STUDENT是接收输入的学生信息,最终将信息插入学生表。

DROP PROCEDURE IF EXISTS `P_GET_CLASS_NAME`;
CREATE PROCEDURE P_GET_CLASS_NAME(IN ID int,OUT NAME VARCHAR(50))
BEGIN
    IF(ID = 1) THEN
          SET NAME = '一班';
    END IF;
    IF(ID = 2) THEN
          SET NAME = '二班';
    END IF;
END;

DROP PROCEDURE IF EXISTS `P_INSERT_STUDENT`;
CREATE PROCEDURE P_INSERT_STUDENT(IN ID INT,IN NAME VARCHAR(10),IN CLASSNO INT,IN BIRTH DATETIME)
BEGIN
     SET @ID = ID;
     SET @NAME = NAME;
     SET @CLASSNO = CLASSNO;
     SET @BIRTH = BIRTH;
     SET @CLASSNAME = NULL;
     CALL P_GET_CLASS_NAME(@CLASSNO,@CLASSNAME);

     SET @insertSql = CONCAT('INSERT INTO TBL_STUDENT VALUES(?,?,?,?)');
     PREPARE stmtinsert FROM @insertSql;
     EXECUTE stmtinsert USING @ID,@NAME,@CLASSNAME,@BIRTH;
     DEALLOCATE PREPARE stmtinsert;
END;

CALL P_INSERT_STUDENT(1,'xy',1,'2012-10-01 10:20:01');

 

在第二个存储过程中

①利用SET声明了参数,调用了第一个存储过程

②在第一个存储过程中的NAME参数是输出参数,所以@CLASSNAME这个参数在调用完第一个过程后就被附值

③最终利用CONCAT拼接SQL语句并传入参数执行SQL语句

 

CALL P_INSERT_STUDENT(1,'xy',1,'2012-10-01 10:20:01');调用存储过程

 

时间: 2024-09-12 05:52:41

MySQL带参数的存储过程小例子的相关文章

Navicat for MySQL如何创建带参数的存储过程

问题描述 Navicat for MySQL如何创建带参数的存储过程?要通过界面创建,输入参数和输出参数应该怎样书写? 问题补充:飞雪无情 写道 解决方案 回答的不能上传截图..你能看到图就更好明白了.运行图形化是直接点上面面的:"运行",然后输入参数,多个参数逗号分割!解决方案二:呵呵.我就是看到了.嗯,输入参数的格式是IN param1 INTEGER(11), IN param2 INTEGER(11)这样的..调用的时候使用 call 存储过程(参数1,参数2);解决方案三:右

gridview中调用带参数的存储过程,出现错误,提示"未提供该参数"

问题描述 存储过程:Createprocdeltractor(@idint,@marknumchar)asDELETEFROMdbo.tractorinfoWHERE(dbo.tractorinfo.id=@id)DELETEFROMdbo.stateWHERE(dbo.state.marknum=@marknum)returngoC#代码:<asp:GridViewID="GridView1"DataKeyNames="id".....<asp:Sql

oracle带参数的存储过程的执行

SQL> create or replace procedure jl_test2 (a in varchar2,b out varchar2)3 as4 begin5 b:= a;6 end;7 /SQL> var c varchar2(10);SQL> exec jl_test('01',:c)PL/SQL 过程已成功完成.SQL> print cC--------------------------------01 在java中调用存储过程用的是call ps_name

求救!带参数的存储过程,在sqldatasource的查询分析器中执行正常,但用querystring网页传递时不正常。

问题描述 参数是在地址栏传的,命令按钮内容如下:DimstrURLAsStringstrURL="<scriptlanguage='javascript'>window.open('Default2.aspx?Begin_Date="&TextBox3.Text&""&Mid(DropDownList5.Text,1,2)&":00:00&City_name="&DropDownList

MySql存储过程 带参数处理方式

下文介绍的MySql存储过程是带参数的存储过程(动态执行SQL语句),该MySql存储过程是根据用户输入的条件和排序方式查询用户的信息,排序条件可以没有调用方式: call GetUsersDynamic('age<=30',''); /********动态查询用户的信息********/     CREATE PROCEDURE GetUsersDynamic(WhereCondition varchar(500),OrderByExpress varchar(100))     begin 

求带参数的C# SQL存储过程例子

问题描述 刚学sql存储过程请问代参数sql存储过程怎么写C#怎么调用 解决方案 解决方案二:sql存储过程同求解决方案三:SqlCommandscmd=newSqlCommand(sql,conn);scmd.CommandType=CommandType.StoredProcedure;scmd.Parameters.Add(newSqlParameter("@p1",SqlDbType.Int));scmd.Parameters["@p2"].Directio

在MySQL中创建带有IN和OUT参数的存储过程的方法_Mysql

 在 MySQL 中创建储存过程的语法很难记,除非你经常跟储存过程打交道,原因很简单,语法不是什么小笑话.如果你通过命令行控制 MySQL,你需要记住准确的语法.一个快速示例可以很好的帮助你做到这点.在MySQL 入门教程中,我们能够看到很多关于如何创建储存过程 和如何利用 IN 和 OUT 参数调用存储过程的示例.这些示例都很简单,能够很好的帮助你理解 MySQL 中创建带参数存储过程的语法.这些示例已在 MySQL 5.5 中通过测试.我们将用下面的雇员表创建并测试这些储存过程:   mys

ASP调用带参数存储过程的几种方式_存储过程

ASP调用带参数存储过程的几种方式     选择自 hxfwsk 的 Blog   关键字   存储过程  出处      作者: 讨饭猫 ASP调用带参数存储过程的几种方式 最近有很多的朋友问到调用存储过程的问题,这里简单介绍几种ASP调用带参数存储过程的方法. 1 这也是最简单的方法,两个输入参数,无返回值: set connection = server.createobject("adodb.connection") connection.open someDSN  Conne

ASP调用带参数的MSSQL存储过程,并返回临时表记录集

前些天,阿里西西web团队(Alixixi.com)在开发一个系统平台时,需要通过存储过程调用多个表的几个字段,合并到一个临时表中,并进行排序返回给ASP调用. 下面,我把经验分享出来: 1.存储过程部分: 以下是存储过程部分:CREATE PROCEDURE [dbo].[alixixi] @sNum int, @sOrder varchar(20)  AS SET nocount on create table #btable (id int,channelid int,classid in