当前位置: 首页 > 面试题库 >

ORA-00907:右括号缺失

丁光华
2023-03-14
问题内容
CREATE TABLE Persons (
  P_Id int NOT NULL,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  PRIMARY KEY (P_Id)
)

CREATE TABLE Orders (
  O_Id int NOT NULL PRIMARY KEY,
  OrderNo int NOT NULL,
  P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

创建表格订单时出现错误:

ORA-00907:右括号缺失


问题答案:

如果要使用列定义内联定义外键,则不应指定FOREIGN KEY。从定义中删除它。

试试这个:

CREATE TABLE Orders 
( 
  O_Id int NOT NULL PRIMARY KEY, 
  OrderNo int NOT NULL,
  P_Id int REFERENCES Persons(P_Id)
)


 类似资料:
  • 这是我的密码。但我不知道使用11G速递版以来的错误在哪里。它显示错误,但不显示错误在哪一行

  • 您好,我有一个select查询,其中包含子查询中的列数据,以从其他表中获取按日期排序的第一个数据,如果子查询没有按语法排序,则工作正常。然而,当子查询使用order by时,它会给出缺少右括号的错误。 我还尝试将rownum的查询分开,如下面的查询和order by it stills get错误无效标识符。 数据库引擎正在使用oracle,请提供帮助。非常感谢。

  • 当godownname和itemname匹配时,我想从表中获取最后可用的余额。 我试了一些代码。但是我对Oracle中的函数有一个问题。 我得到了错误: 严重:空java。sql。SQLSyntaxerRorexException:ORA-00907:oracle缺少右括号。jdbc。驾驶员t4cttiore。oracle的processError(t4cttiore.java:450) 。jdb

  • 考虑如下代码: list<vector<string>> lvs; 在C++98中,这是一个语法错误,因为两个右角括号(‘>’)之间没有空格(译注:因此,编译器会将它分析为”>>”操作符)。C++0x可以正确地分辨出这是两个右角括号(‘>’),是两个模板参数列表的结尾。 为什么之前这会是一个问题呢?一般地,一个编译器前端会按照“分析/阶段”模型进行组织。简要描述如下: 词法分析(从字符中构造to

  • 我将查询写成, 这里是java代码, 但我有个例外,

  • 我一直被告知我缺少一个右括号,但我没有看到,有人能指出吗?