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

Oracle执行建表SQL报缺少右括号错误但实际无缺失该如何处理?

错误原因
  • Oracle 数据库的 INT 类型为 NUMBER 类型的别名,不支持在类型后通过括号指定长度,你代码中所有INT(1)、INT(4)的写法不符合Oracle语法要求,因此触发ORA-00907: missing right parenthesis报错,并非实际遗漏右括号。
  • 可选优化:Oracle 官方推荐使用VARCHAR2替代VARCHAR存储可变长字符串,避免后续版本的兼容性问题。
修正后可正常执行的建表脚本
create table driver 
( 
    d_id NUMBER(1), 
    d_name VARCHAR2(45), 
    d_contact CHAR(10),
constraint driver_d_id_PK Primary Key(d_id) 
);    

create table limo 
( 
    l_id NUMBER(1), 
    l_callsign VARCHAR2(45), 
    l_type VARCHAR2(45),
constraint limo_l_id_PK Primary key(l_id) 
);    

create table clients 
( 
    c_id NUMBER(1), 
    c_name VARCHAR2(45), 
    c_contact CHAR(10), 
    c_methpmt VARCHAR2(25),
constraint clients_c_id_PK Primary key(c_id) 
);    

create table qualify 
( 
    q_id NUMBER(1), 
    q_l_id NUMBER(1), 
    q_d_id NUMBER(1),
constraint qualify_q_id_PK Primary key(q_id), 
constraint qualify_q_l_id_FK Foreign key(q_l_id) references LIMO(l_id), 
constraint qualify_q_d_id_FK Foreign key(q_d_id) references DRIVER(d_id)  
);    

create table rental 
( 
    r_id NUMBER(1), 
    r_date DATE, 
    r_fee NUMBER(4), 
    r_c_id NUMBER(1), 
    r_q_id NUMBER(1),
constraint rental_r_id_PK Primary key(r_id), 
constraint rental_r_c_id_FK Foreign key(r_c_id) references CLIENTS(c_id), 
constraint rental_r_q_id_FK Foreign key(r_q_id) references QUALIFY(q_id)    
);

如果你不需要限制数值的精度,直接将INT(1)替换为INT也可以正常运行。

内容的提问来源于stack exchange,提问作者Taylor Renee Chaisson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:06:05