DROP PROCEDURE

说明

删除一个存储过程

语法

drop_procedure ::=

参数

IF EXISTS

删除存储过程时,若存在同名存储过程则进行删除,否则会跳过操作,且会打印NOTICE提示信息

schema

存储过程所属的模式名

proc_name

存储过程名,跟过程创建时相同。

RESTRICT|CASCADE|CASCADE CONSTRAINTS

  • RESTRICT确保只有不存在相关视图或完整性约束的表才可以被删除。
  • CASCADE|CASCADE CONSTRAINTS强制删除存储过程,并删除任何与本存储过程有依赖性的数据库对象。

默认为RESTRICT

示例

示例1: 删除一个存储过程

--  清理环境
DROP PROCEDURE proc1 CASCADE;

--  创建存储过程
CREATE PROCEDURE proc1(INT, INT) AS
BEGIN
    DBMS_OUTPUT.PUT_LINE($1 + $2);
END;
/



--  删除存储过程
DROP PROCEDURE proc1;

-- 存储过程不存在时,删除存储过程
-- 使用 IF EXISTS 时,跳过操作,不报错
DROP PROCEDURE IF EXISTS proc1;

-- 不使用 IF EXISTS 时,语句报错
DROP PROCEDURE proc1;
ERROR, 过程不存在, procedure "PROC1" does not exist