执行SQL创建表报错ORA-00904无效标识符,怀疑与SYSDATE有关求修复
报错原因定位与修复方案
- 直接触发
ORA-00904: : invalid identifier错误的核心原因是建表语句中最后一个列定义后多余的尾逗号。Oracle语法规范不允许列定义列表的最后一项后追加逗号,你写的appeal_cut_date DATE,后没有其他列定义,多余的逗号会让解析器误认为后续还有列项,最终解析出空的非法标识符,触发报错。 - 你初步判断的SYSDATE相关问题不成立。
DATE DEFAULT SYSDATE是Oracle为日期列设置默认值的合法标准写法,不存在语法问题。
修复后的可执行SQL如下:
CREATE TABLE crimes ( crime_ID NUMBER(9), criminal_ID NUMBER(6), classification CHAR(1), data_changed DATE DEFAULT SYSDATE, status CHAR(2), hearing_date DATE, appeal_cut_date DATE );
若删除尾逗号后仍出现同类报错,可进一步排查列名是否占用了Oracle保留字,你当前定义的所有列名不属于Oracle保留字范围,常规情况下不会再触发该错误。
内容的提问来源于stack exchange,提问作者JJJekwue2
相关产品推荐
相关产品推荐

