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

Oracle添加GETDATE()默认值约束报ORA-00904错误如何解决

报错根因

触发ORA-00904: invalid identifier的核心原因是函数不兼容:

  • GETDATE()是SQL Server系列数据库的内置取当前时间函数,Oracle数据库无此内置函数,SQL解析时会将其判定为不存在的无效标识符,直接抛出错误。Oracle中匹配date类型字段的取当前日期函数为SYSDATE,若需要高精度带时区时间可使用SYSTIMESTAMP。
  • 额外注意:你使用的ADD CONSTRAINT ... DEFAULT ... FOR 字段名语法仅在Oracle 12c及以上版本支持,若使用11g及更早版本,该语法本身也会执行失败,需使用MODIFY字段的写法添加默认值。
修正后可执行代码

Oracle 12c及以上版本

ALTER TABLE Emp
    ADD CONSTRAINT df_date
        DEFAULT SYSDATE FOR hire_date;

Oracle 11g及更早版本

ALTER TABLE Emp MODIFY hire_date DEFAULT SYSDATE;
验证方式

执行插入语句时不指定hire_date字段值,查询即可看到字段自动填充为插入操作发生时的系统时间:

-- 插入测试数据,不赋值hire_date
INSERT INTO Emp(Empno, Ename, Job) VALUES (0001, 'ZHANG', 'DBA');
-- 查询验证默认值是否生效
SELECT Empno, Ename, Hire_date FROM Emp WHERE Empno = 0001;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.19 16:15:46