存储过程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)