MySQL存储过程使用输出变量
(2011-11-16 11:19:08)
标签:
mysql输出变量使用动态语句杂谈 |
分类: SQL |
下面给出一个具体例子:
在model数据库中创建如下表:
DROP TABLE IF EXISTS `model`.`model_director`;
CREATE TABLE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;
创建存储过程:
DELIMITER $$
DROP PROCEDURE IF EXISTS `testINVarchar` $$
CREATE
BEGIN
END $$
DELIMITER ;
不能直接将数据INTO到OUT变量中,还有另一个要注意的问题是,这里不能使用DECLARE声名的局部变量,因为使用CONCAT的时候会将其变成字符串!所以一定要使用SET来声名变量。
--错误做法1(OUT变量直接在SQL语句中使用)
DELIMITER $$
DROP PROCEDURE IF EXISTS `testINVarchar` $$
CREATE PROCEDURE `testINVarchar`(IN inTableName VARCHAR(128),OUT inNUM INT)
BEGIN
END $$
DELIMITER ;
--错误做法2(使用DECLARE声名变量是不可以在CONCAT中使用!)
DELIMITER $$
DROP PROCEDURE IF EXISTS `testINVarchar` $$
CREATE PROCEDURE `testINVarchar`(IN inTableName VARCHAR(128),OUT inNUM INT)
BEGIN
END $$
DELIMITER ;