我是SQL的新手,正在尝试创建一个基本的emp表来学习一点。当我编写查询并尝试执行它时,我不断收到消息“ORA-00907:缺少右括号”。但是我觉得我为每个功能都包含了一对括号。谁能帮助我找出问题,如果可能的话可以纠正我,如果我错了?
以下是样本
SQL> create table emp
2 (emp id number(4),
3 first name varchar2(25),
4 last name varchar2(25),
5 phone number number (10),
6 department id number (4),
7 job id number (4),
8 salary number (6,2),
9 commission_pct number (4,2),
10 manager id number (4);
(emp id number (4),
*
ERROR at line 2:
ORA-00907: missing right parenthesis
答案 0 :(得分:6)
第2行有一个开始括号;
(emp id number(4),
^
未在第10行关闭;
manager id number (4);
^missing
此外,如果不引用列名,则不能在列名中包含空格。我建议用_
替换空格,不要在任何地方引用它们。
SQL> create table emp
2 (emp_id number(4),
3 first_name varchar2(25),
4 last_name varchar2(25),
5 phone_number number (10),
6 department_id number (4),
7 job_id number (4),
8 salary number (6,2),
9 commission_pct number (4,2),
10 manager_id number (4));
答案 1 :(得分:2)
你的专栏上有空格,如果你想留下你桌子上的空格,请用双引号"
create table emp
(
"emp id" number(4),
"first name" varchar2(25),
.....
);
但最好的方法是创建列名而不在其上添加空格。
create table emp
(
empID number(4),
firstName varchar2(25),
.....
);
答案 2 :(得分:2)
我在这里发现了3个错误。
numeric
而不是数字。代码:
create table emp
(emp_id numeric(4),
first_name varchar(25),
lastname varchar(25),
phone_number numeric (10),
department_id numeric (4),
job_id numeric (4),
salary numeric (6,2),
commission_pct numeric (4,2),
manager_id numeric (4))