You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在DBeaver中创建带参数的MariaDB存储过程报错,求解决方案

问题描述

在DBeaver中编写并调用MariaDB存储过程时遇到语法错误,此前在Oracle环境下可正常操作。即使直接使用MariaDB官网提供的带参数存储过程示例,执行后仍报错:

SQL执行期间发生错误,原因:SQL Error [1064] [42000]: (conn=40) 您的SQL语法有误;请查看与您的MariaDB服务器版本对应的手册,了解在'OUT param1 INT)'附近使用的正确语法。

当前仅能成功创建无参数存储过程,添加任何参数都会触发上述错误。官网示例代码如下:

DELIMITER //

CREATE PROCEDURE simpleproc (OUT param1 INT)
 BEGIN
  SELECT COUNT(*) INTO param1 FROM t;
 END;
//

DELIMITER ;

CALL simpleproc(@a);
解决方案
  • 按脚本整体执行:DBeaver默认会按分号分割语句逐行执行,导致DELIMITER设置无法生效。执行时需选中整个脚本内容,点击工具栏的「执行脚本」按钮(而非「执行当前语句」)。
  • 调整DBeaver语句分隔符:
    1. 点击SQL编辑器右上角的语句分隔符按钮(默认显示为;),将其修改为//。
    2. 删除脚本中的DELIMITER //和DELIMITER ;两行,直接执行剩余代码:
      CREATE PROCEDURE simpleproc (OUT param1 INT)
       BEGIN
        SELECT COUNT(*) INTO param1 FROM t;
       END;
      
      CALL simpleproc(@a);
      
  • 检查用户权限:确认当前数据库用户拥有CREATE ROUTINE和EXECUTE权限,可通过SHOW GRANTS FOR '用户名'@'主机名';命令查看,权限不足可能导致带参数存储过程的语法校验失败。

内容的提问来源于stack exchange,提问作者Lynda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 19:44:52