Error: ORA-00955: name is already used by an existing object in Oracle Function
Error: ORA-00955: name is already used by an existing object in Oracle Function
我有一个函数,我正在尝试编译它并得到一个错误 Error: ORA-00955: name is already used by an existing object
。我真的不知道这个错误并尝试搜索这个问题但没有找到任何解决方案。我不知道这是否与任何授予特权有关,但我的模式表没有特权问题。
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;
您可能有另一个同名对象 (PERFORM_CHECK
)。
你可以查询user_objects
:
select *
from user_objects
where object_name = 'PERFORM_CHECK'
然后删除它(将 TYPE_OF_OBJECT
替换为上述查询中的对象类型):
drop TYPE_OF_OBJECT perform_check
我有一个函数,我正在尝试编译它并得到一个错误 Error: ORA-00955: name is already used by an existing object
。我真的不知道这个错误并尝试搜索这个问题但没有找到任何解决方案。我不知道这是否与任何授予特权有关,但我的模式表没有特权问题。
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;
您可能有另一个同名对象 (PERFORM_CHECK
)。
你可以查询user_objects
:
select *
from user_objects
where object_name = 'PERFORM_CHECK'
然后删除它(将 TYPE_OF_OBJECT
替换为上述查询中的对象类型):
drop TYPE_OF_OBJECT perform_check