Oracle 错误:ORA-00955:名称已被现有对象使用。然后我创建一个包

Oracle 错误:ORA-00955:名称已被现有对象使用。然后我创建一个包,oracle,plsql,oracle-sqldeveloper,Oracle,Plsql,Oracle Sqldeveloper,我尝试创建包: CREATE OR REPLACE PACKAGE CARS AS TYPE REFCURSOR IS REF CURSOR; TYPE car_arr IS TABLE OF my_cars%ROWTYPE; PROCEDURE getAllCars(cars OUT REFCURSOR); FUNCTION getCarById(id IN VARCHAR2) RETURN REFCURSOR; END CARS; 我得到:错误:ORA-00955:名称已被

我尝试创建包:

CREATE OR REPLACE PACKAGE CARS AS
  TYPE REFCURSOR IS REF CURSOR;
  TYPE car_arr IS TABLE OF my_cars%ROWTYPE;
  PROCEDURE getAllCars(cars OUT REFCURSOR);
  FUNCTION getCarById(id IN VARCHAR2) RETURN REFCURSOR;
END CARS;
我得到:错误:ORA-00955:名称已被现有对象使用


如何解决此问题?

对象名称在架构中是唯一的。如果我们有一个名为
“CARS”
的表,我们就不能有一个名为
“CARS”
的包

错误:ORA-00955:名称已被现有对象使用

显然,您已经创建了一个名为
“CARS”
的对象。如果您忘记了该对象是什么,请运行

 select * from user_objects
 where object_name = 'CARS';
object\u type
列将告诉您使用该名称已经拥有的对象类型。你有三个选择:

  • 为包指定一个不同的名称
  • 删除现有对象
  • 重命名现有对象

  • 第一种选择似乎更简单,但却很简单

    检查当前用户架构中是否存在名为“CARS”的对象:从所有对象中选择所有者、对象名称、对象类型,其中对象名称=“CARS”;错误消息很漂亮clear@Mighty.Moogle所有者:我的用户,对象名称:汽车