Oracle SQL创建EMPLOYEES表遇ORA-00907错误如何解决?
修复ORA-00907: missing right parenthesis错误的解决方案
错误原因
触发ORA-00907错误的直接原因是SQL中的HIRE_DATE DATE(7)语句:Oracle的DATE数据类型不需要指定精度参数,DATE类型本身会完整存储年、月、日、时、分、秒信息,添加括号和数字会违反语法规则。
修复后的完整SQL语句
结合你目标表结构的约束要求,修正后的代码如下:
CREATE TABLE EMPLOYEES ( EMPLOYEE_ID NUMBER(6) PRIMARY KEY, FIRST_NAME VARCHAR2(20) DEFAULT NULL, LAST_NAME VARCHAR2(25) NOT NULL, EMAIL VARCHAR2(25) NOT NULL UNIQUE, PHONE_NUMBER VARCHAR2(20) DEFAULT NULL, HIRE_DATE DATE, JOB_ID VARCHAR2(10) NOT NULL, SALARY NUMBER(8,2) DEFAULT NULL, COMMISSION_PCT NUMBER(2,2) DEFAULT NULL, MANAGER_ID NUMBER(6) DEFAULT NULL, DEPARTMENT_ID NUMBER(4) DEFAULT NULL );
关键修正点
- 移除
DATE类型后的(7)参数,改为HIRE_DATE DATE - 为
LAST_NAME添加NOT NULL约束(目标表结构要求非空) - 为
EMAIL添加NOT NULL和UNIQUE约束(目标表结构要求非空且唯一) - 为
JOB_ID添加NOT NULL约束(目标表结构要求非空) - 修正拼写错误:
COMISSION_PCT改为COMMISSION_PCT(原SQL拼写缺失一个字母M)
内容的提问来源于stack exchange,提问作者For_greater_glory_of_god
相关产品推荐
相关产品推荐

