You need to enable JavaScript to run this app. Oracle创建PAYMENT表触发ORA-00907错误 无括号或拼写问题无法定位原因
优惠活动
大模型
产品
解决方案
定价
更多

Oracle创建PAYMENT表触发ORA-00907错误 无括号或拼写问题无法定位原因

ORA-00907报错的定位与修正

ORA-00907本质是SQL语法和数据库规则不兼容触发的误导性提示,并非真的存在缺失右括号的问题——只要解析器在解析过程中遇到无法识别的语法片段,就会中断解析流程并抛出该报错。你提供的建表语句中,存在两处和Oracle语法规则不匹配的核心问题,直接触发了报错:

  • int(16) 是MySQL的语法写法,Oracle原生INT类型不支持在类型名后追加长度参数,解析器遇到INT后续括号内的数值时无法匹配语法规则,就会抛出缺失右括号的提示。如果需要为字段限定16位的存储长度,应使用Oracle原生的number(16)写法替代。
  • datetime 不属于Oracle的可用数据类型,Oracle存储带时分秒的日期值,需使用DATE(精度到秒)或TIMESTAMP(精度到纳秒)类型,无法识别的类型名同样会打断SQL解析流程,触发ORA-00907报错。

修正后可直接运行的建表SQL

CREATE TABLE PAYMENT (
    Payment_ID number(16) not null,
    Amount_paid varchar2(30) not null,
    Payment_ReceivedBy varchar2(30) not null,
    Payment_ReceivedFrom varchar2(30) not null,
    Payment_Date date not null, 
    Card_Number varchar2(20) not null,
    Card_Holder_Name varchar2(30) not null,
    Is_CreditCard number(20),
    Is_DebitCard number(20),
    Online_Payment varchar(10),
    CashOnDelivery varchar(10),
    CONSTRAINT PaymentID_PK PRIMARY KEY (Payment_ID)
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.14 19:06:07