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

时间:2017-10-19 04:49:30

标签: 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:现有对象已使用名称。

如何解决?

1 个答案:

答案 0 :(得分:2)

对象名称在架构中是唯一的。如果我们有(比方说)一个名为"CARS"的表,我们也不能拥有一个名为"CARS"的包。

  

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

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

 select * from user_objects
 where object_name = 'CARS';

object_type列会告诉您该名称已包含的对象类型。你有三个选择:

  1. 为包提供不同的名称
  2. 删除现有对象
  3. 重命名现有对象
  4. 第一个选项似乎更容易,但YMMV。