【问题标题】:Why is Oracle giving me a missing right parentheses error when I am not missing a right parenthesis当我没有丢失右括号时,为什么 Oracle 会给我一个缺少右括号的错误
【发布时间】:2021-12-21 12:18:33
【问题描述】:

我正在尝试在 Oracle 中创建一个脚本,但一直收到错误消息,提示我缺少正确的括号 - 而我没有。请帮忙。

create table driver 
( 
    d_id INT(1), 
    d_name VARCHAR(45), 
    d_contact CHAR(10), 
constraint driver_d_id_PK Primary Key(d_id) 
);    
ORA-00907: missing right parenthesis

create table limo 
( 
    l_id INT(1), 
    l_callsign VARCHAR(45), 
    l_type VARCHAR(45), 
constraint limo_l_id_PK Primary key(l_id) 
);    
ORA-00907: missing right parenthesis

create table clients 
( 
    c_id INT(1), 
    c_name VARCHAR(45), 
    c_contact CHAR(10), 
    c_methpmt VARCHAR(25), 
constraint clients_c_id_PK Primary key(c_id) 
);    
ORA-00907: missing right parenthesis

create table qualify 
( 
    q_id INT(1), 
    q_l_id INT(1), 
    q_d_id INT(1), 
constraint qualify_q_id_PK Primary key(q_id), 
constraint qualify_q_l_id_FK Foreign key(q_l_id) references LIMO(l_id), 
constraint qualify_q_d_id_FK Foreign key(q_d_id) references DRIVER(d_id)  
);    
ORA-00907: missing right parenthesis

create table rental 
( 
    r_id INT(1), 
    r_date DATE, 
    r_fee INT(4), 
    r_c_id INT(1), 
    r_q_id INT(1), 
constraint rental_r_id_PK Primary key(r_id), 
constraint rental_r_c_id_FK Foreign key(r_c_id) references CLIENTS(c_id), 
constraint rental_r_q_id_FK Foreign key(r_q_id) references QUALIFY(q_id)    
);    
ORA-00907: missing right parenthesis

【问题讨论】:

  • 请格式化您的代码。如果您不知道如何操作,请使用 Google 搜索“如何在 StackOverflow 上格式化代码” - 然后点击链接。
  • int没有长度,是number(19)的同义词

标签: oracle ddl


【解决方案1】:

该错误具有误导性。你有一个不属于它的括号,Oracle 会感到困惑。 INT 后面不能有括号。

如果您想要一个具有特定长度的数字,请改用NUMBER

(在 Oracle 中,我们使用 VARCHAR2 而不是 VARCHAR,我们也不使用 CHAR。)

CREATE TABLE driver 
(
  d_id NUMBER(1),
  d_name VARCHAR2(45),
  d_contact VARCHAR2(10),
  CONSTRAINT driver_d_id_PK PRIMARY KEY (d_id)
);

NUMBER(1) 只允许单个数字,即从 -9 到 +9 的数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2015-04-16
    • 2021-11-10
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多