gpt4 book ai didi

mysql - 使用变量作为表名并在输出变量中检索数据的存储过程

转载 作者:行者123 更新时间:2023-11-29 05:28:34 25 4
gpt4 key购买 nike

我正在编写一个存储过程,其中我将变量作为表名并在输出参数中检索查询结果

存储过程如下`

DELIMITER //
CREATE PROCEDURE db_test.test(IN tblname varchar(100),OUT Valv varchar(100))
BEGIN
SET @a = CONCAT('SELECT name INTO Valv FROM ', tbname ,' limit 1') ;
PREPARE stmt1 FROM @a;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END;
//
DELIMITER ;

当我使用下面的命令调用上面的过程时

CALL db_test.test('db_test.t_names',@name);
select @name;

我得到的错误是过程 db_test.test 无法返回给定上下文中的结果集

我已搜索此错误的解决方案,但找不到。请为上述查询提出解决方案。

最佳答案

您必须在准备好的语句中使用用户变量。 bug report已经存在。

DELIMITER //
CREATE PROCEDURE db_test.test(IN tblname varchar(100),OUT Valv varchar(100))
BEGIN
SET @a = CONCAT('SELECT name INTO @Valv FROM ', tbname ,' limit 1') ;
PREPARE stmt1 FROM @a;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
SET Valv = @Valv;
END;
//
DELIMITER ;

关于mysql - 使用变量作为表名并在输出变量中检索数据的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17268962/

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