【问题标题】:how to write stored procedure in Oracle 11gOracle 11g 中如何编写存储过程
【发布时间】:2016-04-28 13:04:43
【问题描述】:

我通过sql developer在oracle 11g中尝试了简单的存储过程:

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

但我仍然收到以下错误: ORA-00955: 名称已被现有对象使用

我不知道如何解决这个错误。谁能帮帮我..?

【问题讨论】:

  • 错误信息一目了然。您已经有一个名为 P1 的过程,它告诉它不能创建另一个同名的过程。

标签: stored-procedures oracle11g


【解决方案1】:

错误说明了一切。您已经有一个名为 P1 的存储过程,所以要么删除现有的,要么给这个过程一个不同的名称。要检查过程是否已经存在,请使用以下查询:

SELECT *
  FROM USER_PROCEDURES
 WHERE object_name = 'P1'

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

【讨论】:

    【解决方案2】:

    有两个问题:

    首先,您可能已经保存过一次存储过程。所以你不能再创建它,而必须替换它。二、写输出的过程名拼写错误。

    所以试试这个代码:

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

    【讨论】:

    • 好的..非常感谢朋友..实际上我曾经使用过sql server,所以oracle和sql server的语法有所不同,所以也许我很困惑..但感谢您的帮助.. :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 2014-05-07
    • 2020-06-15
    • 2011-06-13
    • 2012-09-26
    相关资源
    最近更新 更多