Error: ORA-00955: name is already used by an existing object in Oracle Function

Andrew picture Andrew · Jun 8, 2015 · Viewed 32.3k times · Source

I have function which i am trying to compile and getting an error as Error: ORA-00955: name is already used by an existing object. I am really not aware of this error and try to search for this issue but did not find any solution. I dont know is this related to any grant priviledges but i dont have priviledges issue to my schema tables.

create or replace FUNCTION "AK_CHECK" 
-- PUBLIC
(ID Number) RETURN Number
IS
  TYPE_ID Number := 0;
  SUCCESS Number := 0;
  S Number := 0;
BEGIN
  SELECT ACTIVE(ID) + MANUAL(ID) INTO S FROM DUAL;
  CASE S
  WHEN 2 THEN
   SELECT TYPE INTO TYPE_ID
   FROM SALE_SUPPLY KD
   WHERE KD.KPI_DEF_ID = ID;    
  END CASE;
END AK_CHECK;

Answer

Patrick Hofman picture Patrick Hofman · Jun 8, 2015

You probably have another object with the same name (PERFORM_CHECK).

You can find it by quering user_objects:

select *
from   user_objects
where  object_name = 'PERFORM_CHECK'

Then drop it (replace TYPE_OF_OBJECT by the type of the object from the above query):

 drop TYPE_OF_OBJECT perform_check