如何在DBeaver中调用带输出参数的MySQL存储过程
解决DBeaver中调用带输出参数的MySQL存储过程问题
方案1:使用会话变量(最简便)
DBeaver的普通脚本环境对会话变量(@变量名)支持更直接,用以下代码即可获取输出参数:
-- 初始化会话变量 SET @oJSON = ''; -- 调用存储过程,指定输出参数 CALL myProc(8, 1, @oJSON); -- 查询输出结果 SELECT @oJSON;
执行后就能在结果面板看到@oJSON的输出值。
方案2:使用匿名代码块(适合复杂逻辑)
如果必须用DECLARE声明局部变量,需将代码放在BEGIN...END块中,同时修改语句分隔符避免语法冲突:
-- 修改分隔符为//,避免与存储过程内的;冲突 DELIMITER // BEGIN DECLARE oJSON LONGTEXT; CALL myProc(8, 1, oJSON); -- 输出局部变量值 SELECT oJSON; END // -- 恢复默认分隔符 DELIMITER ;
必要检查项
- 确认存储过程参数定义:确保输出参数声明为
OUT或INOUT类型,示例定义开头如下:CREATE PROCEDURE myProc(IN p1 INT, IN p2 INT, OUT oJSON LONGTEXT) - 开启DBeaver多语句支持:编辑MySQL连接,进入「驱动属性」,找到
allowMultiQueries选项并设置为true,否则无法执行包含DELIMITER和BEGIN...END的脚本。
内容的提问来源于stack exchange,提问作者Jake
相关产品推荐
相关产品推荐

