【发布时间】:2020-07-10 04:54:00
【问题描述】:
我正在创建一个表格,但它一直给我错误。
ORA-00907: 缺少右括号
我的代码:
CREATE TABLE EMP (
ENO CHAR(3) NOT NULL PRIMARY KEY,
ENAME VARCHAR(50) NOT NULL,
JOB_TYPE VARCHAR(50) NOT NULL,
MANAGER CHAR(3) DEFAULT NULL,
HIRE_DATE DATE NOT NULL,
DNO INTEGER(11) NOT NULL,
COMMISSION DECIMAL(10,2) DEFAULT NULL,
SALARY DECIMAL(7,2) NOT NULL,
CONSTRAINT DNO FOREIGN KEY (DNO) REFERENCES DEPARTMENTS(DNO),
CONSTRAINT MANAGER FOREIGN KEY (MANAGER) REFERENCES EMP(ENO)
);
【问题讨论】:
-
几个建议,如果可以的话:
char(n)很少需要或有帮助;你会发现varchar2(n)几乎总是更好。然后:在甲骨文世界中,使用varchar2(n)比使用varchar(n)好得多——最好不要问为什么。而且,对于数字,最好学习使用 Oracle 标准数据类型number(m, n)。用number(11,0)代替integer(11),用number(7,2)代替decimal(7, 2)等 -
我还看到这个问题有两个反对意见。不好的是,对一个完全有效的问题投了反对票的猴子并不觉得有必要表达他们的反对意见。也许这个问题太基本了,也许他们希望您“阅读文档”,无论如何 - 至少留下他们认为错误的注释,以便其他人可以就他们的反对意见发表意见。不要气馁;您在本网站上获得的帮助将弥补您不得不忍受的烦恼。
-
感谢您的建议。
标签: sql oracle runtime-error oracle10g