在 oracle 10g 中出现错误 .. 错误:- ORA-00907:缺少右括号
Posted
技术标签:
【中文标题】在 oracle 10g 中出现错误 .. 错误:- ORA-00907:缺少右括号【英文标题】:Getting an error in oracle 10g.. error:- ORA-00907: missing right parenthesis 【发布时间】: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));
【问题讨论】:
DEFAULT=17
应该是 DEFAULT 17
。 docs.oracle.com/cd/E11882_01/server.112/e26088/…
father_age int(2)后面还有一个逗号
去掉逗号和=符号后出现同样的错误...
【参考方案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);
【讨论】:
检查约束确实可以从同一个表中引用任意数量的列。 对不起,这是我在修复其他问题后尝试创建表时遇到的错误。以上是关于在 oracle 10g 中出现错误 .. 错误:- ORA-00907:缺少右括号的主要内容,如果未能解决你的问题,请参考以下文章
创建带有外键的表会出现错误 ORA-00904: : oracle 10g 中的无效标识符 [重复]
安装oracle 10g后用PLSQL Developer成功连接服务,防止中间出现错误的流程