您的位置:首页 > 数据库 > MySQL

mysql function with cursor

2012-12-12 22:58 351 查看
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`localhost` FUNCTION `get_product_warrany_type`(
pid int
) RETURNS varchar(1024) CHARSET utf8
BEGIN

declare v1 nvarchar(256) ;
declare return_value nvarchar(1024) default '';
DECLARE done INT DEFAULT 0;       ##

declare cursor1 cursor for
select warranty_type from warranty_info,product_warranty
where warranty_info.warranty_id = product_warranty.warranty_id
and product_warranty.product_id = pid;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;    # must declare after cursor

open cursor1;
Loop1: loop
fetch cursor1 into v1;

IF done = 1 THEN		# must after fetch in loop
LEAVE Loop1;
END IF;

if (length(return_value) = 0) then
set return_value = v1;
else
set return_value = concat(return_value,',',v1);
END if;

END loop Loop1;
CLOSE cursor1;

RETURN return_value;
END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: