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

存储过程中声明默认值为当前时间戳的变量报错如何解决?

问题解决:DB2存储过程中设置TIMESTAMP变量默认值为当前时间

原因分析

DB2存储过程的变量声明语法规定,DEFAULT关键字后仅支持字面量,而CURRENT TIMESTAMP属于特殊寄存器,不属于字面量范畴,因此直接在声明时使用会触发SQLCODE=-104的语法错误。

正确实现方式

方式一:声明后通过SET语句赋值

这是你已经验证可行的方案,兼容性最强:

DECLARE VSTART TIMESTAMP;
SET VSTART = CURRENT TIMESTAMP;

方式二:调用标量函数作为默认值(版本依赖)

部分DB2版本支持使用带括号的CURRENT_TIMESTAMP()标量函数作为默认值,可直接写在声明语句中:

DECLARE VSTART TIMESTAMP DEFAULT CURRENT_TIMESTAMP();

注:该方式的可用性取决于DB2的具体版本及运行环境,优先推荐方式一保障兼容性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:57:01