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

Unix脚本调用RDS Aurora的MySQL存储过程传参失败问题排查

问题根因定位

核心错误是字符串类型的日期参数传入存储过程时未加单引号,导致MySQL将日期值识别为减法算术表达式:
你写的调用语句展开后实际执行的SQL是 call my_proc(2021-09-25);,MySQL会把不带引号的2021-09-25判定为数值运算,计算2021 - 9 - 25 = 1987,再隐式转换为字符串传入存储过程,和你拿到的错误结果完全匹配。

修复方案

修改Unix脚本中的调用语句,给$DATE参数外层加上单引号(双引号内部的单引号不会被shell解析,会正常传递给MySQL):

echo $DATE
$MYSQL_CMD -e " use $MY_DATABASE; call $PROC_NAME('$DATE'); show warnings;"

修改后展开的SQL会变成 call my_proc('2021-09-25');,符合字符串参数的传参语法要求,存储过程就能拿到正确的日期值。

补充说明:这是shell调用MySQL传参的常见问题,所有非数值类型的参数(字符串、日期等)传入SQL时都要套单引号,避免被MySQL当成表达式、标识符解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:15:04