【问题标题】:Getting an error in oracle 10g.. error:- ORA-00907: missing right parenthesis在 oracle 10g 中出现错误 .. 错误:- ORA-00907:缺少右括号
【发布时间】:2014-02-04 19:22:11
【问题描述】:

我对 SQL 很陌生,只是在为我的董事会考试做一些练习。 我在 oracle 10g 中写了一个命令,但得到以下错误:-

ORA-00907:缺少右括号

这是我的 SQL 语句

CREATE TABLE first_table
(name char(50) NOT NULL,
class_roll int(2) NOT NULL UNIQUE,
board_roll int(8) NOT NULL PRIMARY KEY,
your_age int(2) DEFAULT=17 CHECK(age>17),
father_age int(2),
CHECK(your_age<father_age));

【问题讨论】:

标签: sql oracle oracle10g


【解决方案1】:

当您声明一个 int 列时,您没有定义长度。您可以使用 number(2),但不能使用 int(2)。 此外,您的列检查约束不能引用另一列。修复建议:

CREATE TABLE first_table
(name char(50) NOT NULL,
class_roll number(2) NOT NULL UNIQUE,
board_roll number(8) NOT NULL PRIMARY KEY,
your_age number(2) DEFAULT 17 CHECK(your_age >17),
father_age int);

【讨论】:

  • 检查约束确实可以从同一个表中引用任意数量的列。
  • 对不起,这是我在修复其他问题后尝试创建表时遇到的错误。
猜你喜欢
  • 2013-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 2015-03-31
  • 2013-05-12
  • 2014-03-25
相关资源
最近更新 更多