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

Oracle Live执行SQL报ORA-00936: missing expression错误排查

ORA-00936: missing expression 错误排查与修复

错误原因

  • 报错核心原因是SQL中使用了Oracle不支持的DATE()双参数调用语法:Oracle没有接收「日期字符串+格式掩码」两个入参的DATE()函数,该写法是MySQL等其他数据库的日期转换语法,Oracle SQL解析器无法识别该段语法,因此抛出缺失表达式错误。
  • Oracle中DATE的合法使用场景只有两类:
    • 定义字段/变量的日期数据类型,比如建表语句中的da date属于正确用法
    • 作为ANSI日期字面量前缀,仅支持固定格式DATE 'YYYY-MM-DD',不支持自定义格式,也不能用括号包裹多参数传入

修复方案

根据使用场景选择以下任意一种写法即可:

  1. 使用Oracle原生TO_DATE函数做自定义格式转换,完全匹配原日期格式需求:
create table dat(da date);
insert into dat values(TO_DATE('06/03/76', 'dd/mm/yy'));
  1. 如果使用ANSI标准日期字面量写法,需将日期调整为固定的YYYY-MM-DD格式,无需传入格式参数:
create table dat(da date);
-- 对应原日期06/03/76(dd/mm/yy)即1976年3月6日
insert into dat values(DATE '1976-03-06');

修复后可执行SELECT * FROM dat;验证结果,能正常查询到插入的日期记录即代表运行成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:24:29