我在以下代码中收到错误ORA-00906: missing left parenthesis
:
create table "employee_copy" (
employee_id number(10),
first_name VARCHAR2,
last_name VARCHAR2,
email VARCHAR2,
phone_number VARCHAR2,
hire_date date,
job_id VARCHAR2,
salary number(10),
commission_pct number(3,3),
manager_id number(10),
department_id number(10)
)
为什么我会收到此错误?
答案 0 :(得分:3)
错误消息是:
ORA-00906: missing left parenthesis
原因是:VARCHAR2
需要一个长度参数来定义最大列长度,例如
first_name VARCHAR2(100),
答案 1 :(得分:2)
VARCHAR2
类型需要长度参数:
CREATE TABLE "employee_copy" (
employee_id NUMBER(10),
first_name VARCHAR2(50),
last_name VARCHAR2(50),
email VARCHAR2(50),
phone_number VARCHAR2(50),
hire_date DATE,
job_id VARCHAR2(50),
salary NUMBER(10),
commission_pct NUMBER(3,3),
manager_id NUMBER(10),
department_id NUMBER(10)
)
另外,格式化语句会大大增强其可读性。
答案 2 :(得分:-1)
表命名如“employee_copy”不是相关方法,因为您使用引用的小写表名。 考虑默认情况下Oracle使用大写标识符处理标识符。 因此,如果您使用小写或混合大小写+引用,Oracle将忽略相同的名称而不引用:
SQL> create table "employee_copy" (x int);
Таблица создана.
SQL> select * from employee_copy;
select * from employee_copy
*
Error at line 1:
ORA-00942: table or view does not exist
SQL> select * from "employee_copy";
No rows selected