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

ORA-00902:无效数据类型错误求助——SQL建表语句问题排查

ORA-00902: invalid datatype 错误排查与修复

错误根源

脚本中T_Time Time这一行使用了Oracle不支持的Time数据类型,这是触发ORA-00902错误的直接原因。Oracle数据库没有原生的Time类型,针对时间存储需求,有两种标准方案:

  • 使用DATE类型:Oracle的DATE本身包含年、月、日、时、分、秒完整时间信息
  • 使用TIMESTAMP类型:精度更高,支持小数秒(如毫秒、微秒级)

修正后的SQL脚本

方案1:使用TIMESTAMP存储时间

CREATE TABLE TranInfo 
(
    T_ID CHAR(11) NOT NULL, 
    T_Amount NUMBER(15) NOT NULL,
    T_Time TIMESTAMP, 
    T_Date DATE, 
    C_ID CHAR(11) NOT NULL,
    PRIMARY KEY(T_ID),
    FOREIGN KEY(C_ID) REFERENCES Customer (C_ID)
);

方案2:使用DATE存储时间(无需小数秒场景)

CREATE TABLE TranInfo 
(
    T_ID CHAR(11) NOT NULL, 
    T_Amount NUMBER(15) NOT NULL,
    T_Time DATE, 
    T_Date DATE, 
    C_ID CHAR(11) NOT NULL,
    PRIMARY KEY(T_ID),
    FOREIGN KEY(C_ID) REFERENCES Customer (C_ID)
);

额外说明

原脚本中FOREIGN KEY(C_ID)REFERENCES的写法可以在REFERENCES前添加空格,虽然Oracle语法允许无空格,但这样能提升代码可读性,不影响执行效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:45:58