2016-04-28 34 views
1

我已经通过SQL开发人员试图简单的存储过程在Oracle 11g作为:如何写在Oracle 11g中的存储过程

CREATE PROCEDURE P1 AS 
BEGIN 
DBMS.OUTPUT.PUT.LINE('WELCOME TO ORACLE'); 
END P1; 

但还是我收到以下错误: ORA-00955:名称已使用一个现有的对象

我不明白如何解决这个错误。谁能帮帮我吗..?

+1

错误消息是不言自明。您已经有一个名为P1的过程,它告诉它不能创建具有相同名称的另一个过程。 – cableload

回答

1

错误说明了这一切。您已经有一个名为P1的存储过程,因此要么删除现有的存储过程,要么为此过程指定一个不同的名称。要检查程序已经存在使用此查询:

SELECT * 
    FROM USER_PROCEDURES 
WHERE object_name = 'P1' 

SELECT * 
    FROM USER_OBJECTS 
WHERE object_type = 'PROCEDURE' 
    AND object_name = 'P1' 
1

有两个问题:

首先,你可能已经保存,一旦该存储过程。所以你不能创建它了,但不得不取代它。其次,写入输出的过程名称拼写错误。

那么试试这个代码:

CREATE OR REPLACE PROCEDURE P1 AS 
BEGIN 
    DBMS_OUTPUT.PUT_LINE('WELCOME TO ORACLE'); 
END P1; 
/
+0

行..谢谢很多朋友..其实我曾经与SQL服务器工作,所以有不同的语法的oracle和sql server,所以也许我感到困惑.. 但感谢您的帮助.. :) – Aniket