zhengqiqiqinqin的专栏

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 缺失右括号 这种错误,一定要好好检查自己的建表语句的正确性!

祝你们好运,朋友们!

我的眼泪流了下来,浇灌了下面柔软的小草,

zhengqiqiqinqin的专栏

相关文章:

你感兴趣的文章:

标签云: