gpt4 book ai didi

MySql 过程不返回值

转载 作者:行者123 更新时间:2023-11-29 13:36:14 25 4
gpt4 key购买 nike

我无法在这段代码中获得 OUT 变量的结果,我做错了什么吗?有人可以帮忙吗?

BEGIN 
DECLARE done INT DEFAULT FALSE;
DECLARE cid INT(10);
DECLARE cuserid VARCHAR(50);
DECLARE cur1 CURSOR FOR SELECT id,username FROM tblcustomer;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO cid,cuserid;
IF done THEN
LEAVE read_loop;
END IF;
SET customers_list = CONCAT(customers_list,cid,':',cuserid,',');
END LOOP;
CLOSE cur1;
END

最佳答案

您的代码片段中缺少过程原型(prototype),但假设如下:

CREATE PROCEDURE foo(OUT customers_list VARCHAR(100))
BEGIN
...
SET customers_list = 'foo-list';
END ;

这就是您检索“返回值”的方式:

CALL foo(@var);
SELECT @var; -- outputs "foo-list"

严格来说,过程没有“返回值”。一个函数具有:

CREATE FUNCTION bar() RETURNS VARCHAR(100)
BEGIN
...
RETURN 'bar-list';
END ;

SELECT bar(); -- outputs "bar-list";

关于MySql 过程不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18700860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com