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

ORA-00907缺失右括号报错咨询:建表语句疏漏排查

解决ORA-00907: missing right parenthesis错误的小细节

嘿,这个问题其实挺常见的——你踩了Oracle和MySQL数据类型语法差异的小坑啦!

问题根源

Oracle数据库里的int类型不需要在括号里指定长度,int(20)是MySQL的写法,Oracle不认这种格式,这就是触发ORA-00907错误的直接原因。

修正后的两种方案

方案1:直接使用Oracle的int类型(无需长度)

create table vote ( 
    vote_id number(7) NOT NULL, 
    artwork_id int, 
    person_id int, 
    PRIMARY KEY (vote_id) 
);

方案2:改用Oracle更灵活的number类型(推荐,可自定义精度)

如果需要限制数字的位数,用number(p,s)格式更符合Oracle的使用习惯:

create table vote ( 
    vote_id number(7) NOT NULL, 
    artwork_id number(20), 
    person_id number(20), 
    PRIMARY KEY (vote_id) 
);

额外说明

Oracle里的int其实是number(38)的别名,默认支持最大精度的整数;如果有特定的精度需求,number类型能更精准地控制数字的范围和小数位数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:14:50