缺少右括号?
Missing right parenthesis?
CREATE TABLE PERSON
(
PID Int Not Null,
FirstName Varchar2(15) Not Null,
LastName Varchar2(15) Not Null,
Email Varchar2(50) Not Null,
Type Varchar2(15) Not Null Default Customer,
Primary Key(PID)
);
我收到以下错误:
ORA-00907: missing right parenthesis
type
是 SQL 中的保留字(或者至少,在 Oracle 的风格中)。您可以使用双引号 ("
):
对其进行转义
CREATE TABLE PERSON(
PID Int Not Null,
FirstName Varchar2(15) Not Null,
LastName Varchar2(15) Not Null,
Email Varchar2(50) Not Null,
"Type" Varchar2(15) Default 'Customer' Not Null,
Primary Key(PID)
);
或者只使用非保留字的名称,例如 person_type
:
CREATE TABLE PERSON(
PID Int Not Null,
FirstName Varchar2(15) Not Null,
LastName Varchar2(15) Not Null,
Email Varchar2(50) Not Null,
Person_Type Varchar2(15) Default 'Customer' Not Null,
Primary Key(PID)
);
编辑:
正如@a_horse_with_no_name 评论的那样,默认值 "Customer" 是一个字符串文字,因此必须用单引号括起来 ('
).
编辑 2:
默认值子句应位于 not null
子句之前。
CREATE TABLE PERSON
(
PID Int Not Null,
FirstName Varchar2(15) Not Null,
LastName Varchar2(15) Not Null,
Email Varchar2(50) Not Null,
Type Varchar2(15) Not Null Default Customer,
Primary Key(PID)
);
我收到以下错误:
ORA-00907: missing right parenthesis
type
是 SQL 中的保留字(或者至少,在 Oracle 的风格中)。您可以使用双引号 ("
):
CREATE TABLE PERSON(
PID Int Not Null,
FirstName Varchar2(15) Not Null,
LastName Varchar2(15) Not Null,
Email Varchar2(50) Not Null,
"Type" Varchar2(15) Default 'Customer' Not Null,
Primary Key(PID)
);
或者只使用非保留字的名称,例如 person_type
:
CREATE TABLE PERSON(
PID Int Not Null,
FirstName Varchar2(15) Not Null,
LastName Varchar2(15) Not Null,
Email Varchar2(50) Not Null,
Person_Type Varchar2(15) Default 'Customer' Not Null,
Primary Key(PID)
);
编辑:
正如@a_horse_with_no_name 评论的那样,默认值 "Customer" 是一个字符串文字,因此必须用单引号括起来 ('
).
编辑 2:
默认值子句应位于 not null
子句之前。