Andrew Andrew - 6 months ago 14
SQL Question

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

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

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