这种情况是因为数据库中已经存在同名的存储过程或者其他对象(object)等造成。
解决方法:
1、确定原有名称的存储过程是否有用,如果有用,可为自己的新存储过程重新定义名称。
2、如果确定原有的存储过程无用,在创建新的同名存储过程时可用create or replace 来解决。
如,目前数据库中存在一个叫P_TEST的存储过程,如果确定无用,执行时可按如下方法:
【ORA-00955: 名称已由现有对象使用】
这个错误说的不仅仅是有可能你有存储过程使用了【student2】,还有可能是你有表名叫【student2】或者其他oracle对象叫【student2】。
说明:其实由于你已经使用了【create or repalace procedure】即使有存储过程叫【student2】也会被覆盖掉,你用下面的命令查询一下,有什么对象叫【student2】,删掉它或者换一个存储过程名字。
【SELECT OBJECT_NAME,OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_NAME='STUDENT2';】
---
以上,希望对你有所帮助。