ora-00907 缺失右括号3

ora-00907 缺失右括号

刚刚接触Oracle数据库,在使用PL/SQL dev建表的时候,碰到了ora-00907这个错误,在网上找了很多资料,发现别人碰到的那个问题,跟我碰到的这个问题不一样,所以一直没有解决方法,后来,在网上搜索使用oracle建立外键约束的示例,终于发现自己的错误在什么地方了。

系统环境:window 7 旗舰版

oracle数据库:oracle11g

第三方软件:PL/SQL dev

错误的写法:

/* 创建选课表  */
create table learning(
id number(18,0) primary key,
ryid number(18,0) foreign key references students(id), //外键约束
courseid number(18,0) foreign key  references course(id), //外键约束
score number(4,1) check(score>=0 and score<=100)
)

正确的写法:

/* 创建选课表  */
create table learning(
id number(18,0) primary key,
ryid number(18,0) references students(id),
courseid number(18,0)  references course(id),
score number(4,1) check(score>=0 and score<=100)
)

错误在于:在使用create 建表时, 将创建约束的表级定义列级定义搞混了 ,出现上述的 两不像的错误,所以就报错了。

此外,在网上找资料的过程中发现 出现ora-00907 缺失右括号的情况有很多种:

比如:

1.在创建主外键约束的时候,外键的类型跟主键的类型不完全一致,也会出现ora-00907 缺失右括号错误

2.关键字写错,也会出现ora-00907 缺失右括号 的错误

3.某些约束 和 字段类型的前后 是有一定的顺序关系的,具体可以查看oracle相关文档

……等等

所以,如果大家在学习oracle的过程中碰到了ora-00907 缺失右括号 这种错误,一定要好好检查自己的建表语句的正确性!

祝你们好运,朋友们!




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值