SQL错误:ORA-00907:尝试创建表时缺少右括号

SQL错误:ORA-00907:尝试创建表时缺少右括号,sql,oracle,Sql,Oracle,这是我试图对Oracle数据库执行的查询,该数据库显然没有缺少括号 CREATE TABLE P_DOG( DOG_ID CHAR(5) NOT NULL, DOG_NAME VARCHAR2(30) NOT NULL DEFAULT 'UNKNOWN', DOG_BIRTHDAY_MONTH NUMBER(2) NULL CHECK(DOG_BIRTH_MONTH>=1 AND DOG_BIRTH_MONTH<=12), DOG_BIRTHDAY_YEAR NUMBER(4) NO

这是我试图对Oracle数据库执行的查询,该数据库显然没有缺少括号

CREATE TABLE P_DOG(
DOG_ID CHAR(5) NOT NULL,
DOG_NAME VARCHAR2(30) NOT NULL DEFAULT 'UNKNOWN',
DOG_BIRTHDAY_MONTH NUMBER(2) NULL CHECK(DOG_BIRTH_MONTH>=1 AND DOG_BIRTH_MONTH<=12),
DOG_BIRTHDAY_YEAR NUMBER(4) NOT NULL CHECK(DOG_BIRTH_YEAR>=1980 AND DOG_BIRTH_YEAR<= 2030),
SEX CHAR(1) NOT NULL,
SPAYED_OR_NEUTERED CHAR(1) NOT NULL DEFAULT 'N',
CONSTRAINT DOG_PK PRIMARY KEY(DOG_ID),
);
创建表P\u DOG(
DOG_ID字符(5)不为空,
DOG_NAME VARCHAR2(30)非空默认值“未知”,

狗狗生日月号(2)空检查(DOG_BIRTH_MONTH>=1和DOG_BIRTH_MONTH=1980和DOG_BIRTH_YEAR除了Mat在注释中指出的结尾处的额外逗号外,默认值之后不应为空-并且检查约束应具有正确的列名:列名具有生日,但条件使用出生,请更改列名或您拥有的内容在这样的条件下,他们匹配


特别是“缺少右括号”错误是由于在NOTNULL之后有一个默认值造成的。顺序错误。

Extra
在末尾。非常感谢!这很有帮助!