5

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;
Himanshu sharma
  • 7,487
  • 4
  • 42
  • 75
Andrew
  • 3,632
  • 24
  • 64
  • 113
  • 1
    You are using `create and replace`, so if the function already exists, then it will be replaced. So, there is something else causing the issue and not the function name. Compile in `SQL*Plus`, and use **SHOW ERRORS**, it will show you exact line number and the object which throws the error. Edit your question and add copy paste the complete error stack. – Lalit Kumar B Jun 08 '15 at 09:18

1 Answers1

15

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
Patrick Hofman
  • 153,850
  • 22
  • 249
  • 325