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

Oracle数据库创建表时报ORA-00904无效标识符错误如何解决

ORA-00904报错原因
  • 直接使用Oracle保留关键字作为列名:Level属于Oracle内置保留关键字,直接用作列名会被识别为非法标识符。
  • 数据类型参数超出合法范围:
    • HP列定义为number(1000),Oracle的NUMBER类型精度最大仅支持38位,1000超出合法取值范围。
    • Money列定义为varchar2(10000),Oracle默认配置下SQL场景的VARCHAR2类型最大长度为4000字节,10000超出上限。
修复方案

建议修改列名避免使用保留字,同时调整数据类型参数到合法范围,修改后的建表语句参考如下:

create table player_info
(
    player_id varchar2(200) primary key,
    user_id varchar2(100) not null,
    player_level varchar2(200) not null,
    hp number(10) not null,
    map_id varchar2(200) not null,
    model_id varchar2(200) not null,
    money number(20,2) not null,
    boss_killed varchar2(100)
);

修复说明:

  1. 将保留字Level改为player_level,避免关键字冲突,同时更贴合字段语义
  2. 将HP的精度从1000调整为10,足够覆盖常规游戏HP的取值范围
  3. 金额字段Money从字符串类型改为数值类型number(20,2),支持存储最大18位整数加2位小数的金额,也避免了字符串长度超限问题;如果确实需要存储字符串格式的超长金额,可以改为CLOB类型
  4. 将Model_id的varchar改为Oracle官方推荐的varchar2类型,避免潜在的兼容性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 02:27:01