今天使用Oracle数据库建表的时候,遇到了“ORA-00907: 缺失右括号”的问题,关于这个,做了一些总结:
报错的sql语句:
create table pre_info(pre_name varchar2(20),pre_code varchar2(20),pre_num number(5),pre_price_old number(5), pre_tax decimal(1,3),pre_price_net number(5,2),pre_dep varchar2(20),pre_starttime_plan date(8),pre_overtime_plan date(8), pre_starttime_actu date(8),pre_overtime_actu date(8),pre_overtime_cust date(8),pre_overtime_cust varchar2(20), pre_overtime_blo varchar2(1),pre_month varchar2(2));
改正后,sql语句如下:
create table pre_info( pre_code varchar2(20) not null, pre_name varchar2(20), pre_num number(5), pre_price_old number(5),pre_tax decimal(1,3),pre_price_net number(5,2), pre_dep varchar2(20),pre_starttime_plan date,pre_overtime_plan date, pre_starttime_actu date,pre_overtime_actu date,pre_overtime_cust varchar2(20), pre_overtime_blo varchar2(1),pre_month varchar2(2),primary key(pre_code) );
在创建数据表总结如下:
1.date限定字段大小的时候,会报错,比如,将date(12)去掉(12);
2.关键字顺序有误,也会报这样的错;
3.创建表时,如果表有关键字,用双引号括起来;
4.如果创建表时,未对字段中的表设置长度,也会报错;
5.创建主外键约束时外键类型跟主键类型不完全一致,也是会报错的。
同理,关于建表时左括号错误,可以参照上面总结。