您是否阅读过甲骨文的回应?它说
ORA-00955: 名称已被现有对象使用
这是什么意思?通常,这意味着名称为employees 的表已经存在,并且您不能使用相同的名称创建另一个对象 - employees。该怎么办?你有两个选择:
但是,它不必是已经存在的 表 - 可以是任何其他对象,但使用相同的名称。例如,您可能有一个名为employees 的视图,或者一个过程、一个触发器……任何对象。要找出它是什么,请查询user_objects。
这就是你现在所拥有的——你不能创建一个表:
SQL> CREATE TABLE employees(
2 id NUMBER(10)NOT NULL,
3 salary NUMBER(10)NOT NULL,
4 adress VARCHAR2(60),
5 sex VARCHAR2(60),
6 phone_number VARCHAR2(10),
7 email VARCHAR2(40),
8 employee_name VARCHAR2(12 CHAR)NOT NULL,
9 surname VARCHAR2(20 CHAR)NOT NULL,
10 father_name VARCHAR2(20 CHAR)NOT NULL,
11 id_duty NUMBER(15)NOT NULL
12 );
CREATE TABLE employees(
*
ERROR at line 1:
ORA-00955: name is already used by an existing object
我已经拥有了哪个对象(其名称是雇员)?
SQL> select object_type from user_objects where object_name = 'EMPLOYEES';
OBJECT_TYPE
-------------------
TABLE
啊哈,一张桌子。它看起来怎么样?
SQL> desc employees
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
只有一栏?那是愚蠢的东西,可能我忘了放弃它。它是否包含任何行?
SQL> select * from employees;
no rows selected
不,它是空的。好的,让我们放下它并创建我全新的employees 表:
SQL> drop table employees;
Table dropped.
SQL> CREATE TABLE employees(
2 id NUMBER(10)NOT NULL,
3 salary NUMBER(10)NOT NULL,
4 adress VARCHAR2(60),
5 sex VARCHAR2(60),
6 phone_number VARCHAR2(10),
7 email VARCHAR2(40),
8 employee_name VARCHAR2(12 CHAR)NOT NULL,
9 surname VARCHAR2(20 CHAR)NOT NULL,
10 father_name VARCHAR2(20 CHAR)NOT NULL,
11 id_duty NUMBER(15)NOT NULL
12 );
Table created.
SQL>
好多了。