暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8s数据库DROP PROCEDURE语句简介

原创 GBASE数据库 2025-12-06
39

南大通用GBase 8s数据库删除用户定义的过程会除去该过程的文本和可执行的版本。您无法在同一个 SPL 过程内删除 SPL过程。

不能使用 DROP ROUTINE 、DROP FUNCTION 或 DROP PROCEDURE 语句删除受保护的例程。有关受保护的例程的更多信息,请参阅 《GBase 8s SQL 指南:参考》 中 sysprocedures 系统目录表的描述。

要使用 DROP PROCEDURE 语句,您必须是过程的所有者并且还必须具有数据库的 Resource 权限或 DBA 权限。您必须还需具有编写此 UDR 所使用的程序语言的 Usage 权限。要删除一个外部用户定义的过程,另见 删除外部过程。

如果 function 或 procedure 名称在数据库中不是唯一的,则您必须指定足够的 parameter_type 信息以区分这些名称。如果数据库服务器无法解析一个意义含糊的 UDR 名称,即它的签名与另一个UDR 的签名只是在一个未命名的 ROW 类型参数中不同,则返回一个错误。(当定义了含义模糊的 function 或 procedure 时,数据库服务器不能预期此错误。)

如果不知道 UDR 是用户定义的过程还是用户定义的函数,您可以使用 DROP ROUTINE 语句。

有关更多信息,请参阅 DROP ROUTINE 语句。

对于较早的 GBase 8s 版本的向后兼容性,可以使用此语句来删除由 CREATE PROCEDURE 语句创建的 SPL 函数。您可以在过程名称的后面包括参数数据类型,以识别过程:

DROP PROCEDURE compare(int, int);

如果对用户定义的过程使用了指定的名称,还必须用关键字 SPECIFIC,如下例所示:

DROP SPECIFIC PROCEDURE compare_point;

如果您包含了可选的 IF EXISTS 关键字,则如果没有指定名称的过程在当前数据库中注册,则数据库服务器不采取任何操作(而不是向应用程序发送错误)。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论