我如何修复 oracle sql 开发人员中的 "create" 错误?
how could i fix "create" error in oracle sql developer?
当我开始编译脚本时,出现这个错误。我是 Oracle SQL 的新手,所以 - 你能帮帮我吗?
CREATE TABLE EMPLOYEES
(
ID number(10) NOT NULL,
SALARY number(10) NOT NULL,
ADRESS varchar2(60),
SEX varchar2(60),
PHONE_NUMBER varchar2(10),
EMAIL varchar2(40),
EMPLOYEE_NAME varchar2(12 CHAR) NOT NULL,
SURNAME varchar2(20 CHAR) NOT NULL,
FATHER_NAME varchar2(20 CHAR) NOT NULL,
ID_DUTY number (15) NOT NULL
);
CREATE TABLE CLIENTS
(
ID number(10) NOT NULL,
CLIENT_NAME varchar2(12) NOT NULL,
SURNAME number(20) NOT NULL,
FATHER_NAME number(20) NOT NULL,
PHONE_NUMBER char(10) ,
ADRESS varchar(60)
);
错误截图:
你读过甲骨文是如何回应的吗?它说
ORA-00955: name is already used by an existing object
这是什么意思?通常,这意味着名称为 employees
的 table 已经存在,您不能使用相同的名称创建另一个对象 - employees
。该怎么办?您有两个选择:
- 删除现有对象
- 重命名新对象
但是,这不一定是已经存在的 table - 可以是任何其他对象,但使用相同的名称。例如,您可能有一个名为 employees
的视图,或者一个过程、一个触发器……任何对象。为了找出它是什么,查询 user_objects
.
这就是您现在拥有的 - 您无法创建 table:
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
我已经拥有哪个对象(名称为 employees)?
SQL> select object_type from user_objects where object_name = 'EMPLOYEES';
OBJECT_TYPE
-------------------
TABLE
啊哈,table。它看起来怎么样?
SQL> desc employees
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
只有一栏?那东西愚蠢,可能是我忘记丢掉了。它包含任何行吗?
SQL> select * from employees;
no rows selected
不,它是空的。好的,让我们放下它并创建我的全新 employees
table:
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>
好多了。
当我开始编译脚本时,出现这个错误。我是 Oracle SQL 的新手,所以 - 你能帮帮我吗?
CREATE TABLE EMPLOYEES
(
ID number(10) NOT NULL,
SALARY number(10) NOT NULL,
ADRESS varchar2(60),
SEX varchar2(60),
PHONE_NUMBER varchar2(10),
EMAIL varchar2(40),
EMPLOYEE_NAME varchar2(12 CHAR) NOT NULL,
SURNAME varchar2(20 CHAR) NOT NULL,
FATHER_NAME varchar2(20 CHAR) NOT NULL,
ID_DUTY number (15) NOT NULL
);
CREATE TABLE CLIENTS
(
ID number(10) NOT NULL,
CLIENT_NAME varchar2(12) NOT NULL,
SURNAME number(20) NOT NULL,
FATHER_NAME number(20) NOT NULL,
PHONE_NUMBER char(10) ,
ADRESS varchar(60)
);
错误截图:
你读过甲骨文是如何回应的吗?它说
ORA-00955: name is already used by an existing object
这是什么意思?通常,这意味着名称为 employees
的 table 已经存在,您不能使用相同的名称创建另一个对象 - employees
。该怎么办?您有两个选择:
- 删除现有对象
- 重命名新对象
但是,这不一定是已经存在的 table - 可以是任何其他对象,但使用相同的名称。例如,您可能有一个名为 employees
的视图,或者一个过程、一个触发器……任何对象。为了找出它是什么,查询 user_objects
.
这就是您现在拥有的 - 您无法创建 table:
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
我已经拥有哪个对象(名称为 employees)?
SQL> select object_type from user_objects where object_name = 'EMPLOYEES';
OBJECT_TYPE
-------------------
TABLE
啊哈,table。它看起来怎么样?
SQL> desc employees
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
只有一栏?那东西愚蠢,可能是我忘记丢掉了。它包含任何行吗?
SQL> select * from employees;
no rows selected
不,它是空的。好的,让我们放下它并创建我的全新 employees
table:
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>
好多了。