Welcome 微信登录

首页 / 数据库 / MySQL / 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,"徐越",1,"2012-10-01 10:20:01");在第二个存储过程中①利用SET声明了参数,调用了第一个存储过程②在第一个存储过程中的NAME参数是输出参数,所以@CLASSNAME这个参数在调用完第一个过程后就被附值③最终利用CONCAT拼接SQL语句并传入参数执行SQL语句CALL P_INSERT_STUDENT(1,"徐越",1,"2012-10-01 10:20:01");调用存储过程ORA-06502 assigning values from SQL to PL/SQL variableOracle Database Partition 技术相关资讯      MySQL存储过程  MySQL存储过程例子  MySQL存储过程参数 
  • MySQL将表名称修改成大写的存储过  (08月13日)
  • MySQL存储过程及触发器  (12/15/2015 10:44:33)
  • MySQL存储过程以及在Java中的程序  (08/03/2015 14:02:11)
  • MySQL创建存储过程实例  (03月08日)
  • MySQL 存储过程学习  (08/24/2015 19:55:43)
  • MySQL存储过程权限检查主要点  (06/06/2013 19:42:04)
本文评论 查看全部评论 (0)
表情: 姓名: 字数