使用Oracle SQL建表遇ORA-00907错误:未缺右括号却报错
ORA-00907: 缺失右括号错误排查与解决
你的问题出在Oracle SQL对INT类型的语法要求上——Oracle里的INT是NUMBER(38)的别名,不允许在INT后面加括号指定长度(比如你写的INT(4)、INT(2)),这种写法会让SQL解析器误判,从而抛出看似是缺失右括号的错误。
修正后的建表语句如下:
CREATE TABLE PET ( Pet_ID INT PRIMARY KEY, Owner_First CHAR(15) NOT NULL, Owner_Last CHAR(15) NOT NULL, Pet_Name CHAR(15) NOT NULL, Breed CHAR(15), Weight DECIMAL(5,2), Age INT );
如果需要限制Pet_ID和Age的数值位数,也可以用Oracle标准的NUMBER类型来定义,比如:
CREATE TABLE PET ( Pet_ID NUMBER(4) PRIMARY KEY, Owner_First CHAR(15) NOT NULL, Owner_Last CHAR(15) NOT NULL, Pet_Name CHAR(15) NOT NULL, Breed CHAR(15), Weight DECIMAL(5,2), Age NUMBER(2) );
内容的提问来源于stack exchange,提问作者Jonah
相关产品推荐
相关产品推荐

