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

Oracle建表报错ORA-00907:缺失右括号,求SQL问题排查

Oracle建表报错ORA-00907: 缺失右括号问题分析

原报错SQL语句

CREATE TABLE "EDS"."ESBPROCDOC" 
(    "ID" NUMBER(10,0) PRIMARY key Sequence COMMENT'自增主键', 
        "PROCNAME" VARCHAR(36) not NULL COMMENT'处理器名称',
        "PROCCODE" NUMBER(10,0) unique COMMENT'处理器对应数字',
        "PROCDESC" CLOB COMMENT'处理器描述',
        "PROCVAL" CLOB COMMENT'处理器值解释',
        "EXTDPARAM" CLOB COMMENT'扩展参数解释',
        "IS_DELETED" NUMBER(10,0) DEFAULT 0 COMMENT'逻辑删除',
        "CREATED_AT" TIMESTAMP DEFAULT SYSTIMESTAMP COMMENT'创建表时间',
"UPDATED_AT" TIMESTAMP DEFAULT SYSTIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改表时间'
        USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
        STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
        PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DHERP"  ENABLE
) SEGMENT CREATION IMMEDIATE 
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DHERP"

问题与报错原因

  • 主键定义语法错误:Oracle中不能直接在PRIMARY key后加Sequence实现自增。自增主键需单独创建序列,或在12c及以上版本使用IDENTITY列语法,该错误导致解析器无法识别字段定义的结束位置。
  • 误用MySQL语法:ON UPDATE CURRENT_TIMESTAMP是MySQL专属语法,Oracle不支持字段级自动更新时间,需通过触发器实现,该语法破坏了SQL结构逻辑。
  • 索引配置位置错误:USING INDEX...子句应紧跟在主键约束定义之后,原SQL将其放在最后一列后,导致表结构定义的括号匹配逻辑混乱,最终触发ORA-00907报错(这类报错通常并非真的缺失右括号,而是前置语法错误引发解析异常)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:45:07