【问题标题】:Missing right parenthesis on CREATE TABLE statementCREATE TABLE 语句中缺少右括号
【发布时间】:2013-02-10 19:28:35
【问题描述】:

我收到了

ORA-00907 错误,缺少右括号

尝试使用 MySQL 创建表时。

我在网络上进行了广泛的搜索,但在这里找不到任何可以帮助我的东西..

这是我的 CREATE TABLE 语句:

CREATE TABLE station
(
nomStation varchar2(255),
capacite number(15) NOT NULL,
lieu varchar2(255) NOT NULL,
region ENUM('Quebec', 'Ontario', 'NewBrunswick', 'NovaScotia'),
tarif number(10) DEFAULT 0,
CONSTRAINT station_nomStation_pk PRIMARY KEY(nomStation)
);

【问题讨论】:

  • 为什么这个问题同时用 mysql 和 oracle 标记?当然不可能两者兼有!
  • 我猜他是想输入 SQL 并搞砸了。
  • 是的,很抱歉,它是 Oracle。如您所见,这是我第一次尝试写声明..

标签: oracle ddl


【解决方案1】:

根据我的经验,“ORA-00907 错误,缺少右括号”通常是由错误数量的逗号触发的,例如在最后一列或约束之后添加额外的逗号。

但是,在您的情况下,一些谷歌搜索似乎表明 Oracle 不支持您正在使用的 ENUM 语法。相反,您应该使用 CHECK,如 this blog post 中所述。

【讨论】:

  • 谢谢佩特,它有效。似乎我同时阅读了关于 MySQL 和 SQLplus 的两篇文章。但这不会再发生了;)
  • 不客气。记得投票和/或检查已确认的答案,以防其他人犯类似错误。
猜你喜欢
  • 1970-01-01
  • 2016-04-24
  • 2023-03-10
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-13
相关资源
最近更新 更多