前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >SQL命令 DROP METHOD

SQL命令 DROP METHOD

作者头像
用户7741497
发布于 2022-04-25 07:32:49
发布于 2022-04-25 07:32:49
49900
代码可运行
举报
文章被收录于专栏:hml_知识记录hml_知识记录
运行总次数:0
代码可运行

SQL命令 DROP METHOD

删除方法

大纲

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP METHOD name [ FROM className ]

参数

  • name - 要删除的方法的名称。名称是一个标识符。请不要指定方法的参数括号。名称可以是限定的(schema.name),也可以是非限定的(Name)。除非指定了FROM className子句,否则非限定方法名称将采用默认架构名称。
  • FROM className - 可选-如果指定,FROM className子句将从给定类中删除该方法。请注意,必须指定方法的类名(MethBonusCalc),而不是SQL名称(BonusCalc)。如果未指定此子句, IRIS将在架构的所有类中搜索该方法,并将其删除。但是,如果找不到此名称的方法,或者找到多个此名称的方法,则会返回错误代码。如果删除该方法会导致空类,则Drop方法也会删除该类。

描述

DROP METHOD命令可删除方法。删除方法时, IRIS会将其从已授予该方法的所有用户和角色中撤消,并将其从数据库中删除。

要删除方法,必须具有GRANT命令指定的%DROP_METHOD管理权限。如果要尝试删除具有已定义所有者的类的方法,则必须以类所有者的身份登录。否则,系统会生成SQLCODE-99错误(权限冲突)。

如果包含方法定义的类定义是已部署的类,则不能删除该方法。此操作失败,并出现SQLCODE-400错误,并显示%msg Unable to Execute DDL以修改已部署的类:‘classname’

支持名称和From className的以下组合。请注意,FROM子句指定的是类包名称和方法名称,而不是SQL名称。在这些示例中,系统范围内的默认架构名称是SQLUser,它对应于User类程序包:

  • DROP METHOD BonusCalc FROM methBonusCalc: 删除该方法 SQLUser.BonusCalc().
  • DROP METHOD BonusCalc FROM User.methBonusCalc: 删除该方法 SQLUser.BonusCalc().
  • DROP METHOD Test.BonusCalc FROM methBonusCalc: 删除该方法 SQLUser.BonusCalc().
  • DROP METHOD BonusCalc FROM Employees.methBonusCalc: 删除该方法 Employees.BonusCalc().
  • DROP METHOD Test.BonusCalc FROM Employees.methBonusCalc: 删除该方法d Employees.BonusCalc().

如果指定的方法不存在,Drop Method将生成SQLCODE-362错误。如果指定的className不存在,Drop方法将生成SQLCODE-360错误。如果指定的方法可以引用两个或多个方法,Drop Method将生成SQLCODE-361错误;必须指定一个className来解决此歧义。

如果使用PROCEDURE CHARECTURE关键字定义了方法,则可以通过调用$SYSTEM.SQL.Schema.ProcedureExists()方法来确定该方法是否存在于当前命名空间中。使用PROCEDURE关键字定义的方法可以通过DROP方法或DROP PROCEDURE删除。

还可以删除方法,方法是从类定义中移除方法,然后重新编译类,或者删除整个类。

示例

下面的嵌入式SQL示例尝试从类User.Employee中删除mymeth

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ClassMethod DropMethod()
{
    &sql(
        DROP METHOD mymeth FROM User.Employee
    )
    if SQLCODE = 0 {
        w !,"方法已删除" 
    } elseif SQLCODE = -360 {
        w !,"不存在的类: ",%msg 
    } elseif SQLCODE=-362 {
        w !,"不存在的函数: ",%msg 
    } else {
        w !,"意外错误代码: ",SQLCODE
    }
}

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SQL命令 DROP FUNCTION
DROP Function命令用于删除函数。当删除某个函数时, IRIS会将其从已授予该函数的所有用户和角色中撤消,并将其从数据库中删除。
用户7741497
2022/04/25
8010
SQL命令 CREATE VIEW(一)
CREATE VIEW命令定义视图的内容。定义视图的SELECT语句可以引用多个表,也可以引用其他视图。
用户7741497
2022/04/18
6.5K1
SQL命令 INSERT(四)
下面的嵌入式SQL示例创建一个新表SQLUser.MyKids。下面的示例使用INSERT用数据填充此表。在插入示例之后,提供了一个删除SQLUser.MyKids的示例。
用户7741497
2022/05/05
7930
SQL命令 DROP PROCEDURE
DROP PROCEDURE命令删除当前命名空间中的过程。删除过程时, IRIS会将其从已授予该过程的所有用户和角色中撤消,并将其从数据库中删除。
用户7741497
2022/04/25
7020
SQL命令 DROP QUERY
DROP QUERY命令删除查询。删除查询时, IRIS将从所有已授予该查询的用户和角色中吊销该查询,并将其从数据库中删除。
用户7741497
2022/05/05
6090
SQL命令 CREATE QUERY
CREATE QUERY语句在类中创建一个查询。 默认情况下,名为MySelect的查询将被存储为User.queryMySelect或SQLUser.queryMySelect。
用户7741497
2022/04/14
1K0
SQL命令 CREATE PROCEDURE(二)
如果指定的特征无效,系统将生成SQLCODE -47错误。 指定重复的特征将导致SQLCODE -44错误。
用户7741497
2022/04/14
7300
SQL命令 CREATE METHOD(二)
如果指定对方法无效的查询关键字(如CONTAINSID或RESULTS),系统将生成SQLCODE -47错误。 如果指定了重复的查询关键字(例如FINAL FINAL),系统将生成SQLCODE -44错误。
用户7741497
2022/04/14
3870
SQL命令 CREATE PROCEDURE(一)
CREATE PROCEDURE语句创建一个方法或查询,该方法或查询将自动作为SQL存储过程公开。 存储过程可以由当前名称空间中的所有进程调用。 存储过程由子类继承。
用户7741497
2022/04/14
1.4K0
SQL命令 DROP INDEX
DROP INDEX语句从表定义中删除索引。可以使用DROP INDEX删除标准索引、位图索引或位片索引。通过删除相应的唯一索引,可以使用DROP INDEX删除唯一约束或主键约束。不能使用DROP INDEX删除位图范围索引或主地图(数据/主)IDKEY索引。
用户7741497
2022/04/25
8560
SQL命令 CREATE METHOD(一)
CREATE METHOD语句创建一个类方法。 这个类方法可能是存储过程,也可能不是。 要在公开为SQL存储过程的类中创建方法,必须指定procedure关键字。 默认情况下,CREATE METHOD不会创建一个同时也是存储程序的方法; CREATE PROCEDURE语句总是创建一个同时也是存储过程的方法。
用户7741497
2022/04/14
4080
SQL命令 DROP TRIGGER
DROP TRIGGER命令删除触发器。如果要修改现有触发器,则必须先调用DROP TRIGGER删除旧版本的触发器,然后再调用CREATE TRIGGER。
用户7741497
2022/05/05
6610
SQL命令 TRUNCATE TABLE
TRUNCATE TABLE命令从表中删除所有行,并重置所有表计数器。 可以直接截断表,也可以通过视图截断表。 通过视图截断表会受到删除要求和限制,如CREATE view中所述。
用户7741497
2022/05/07
1.9K0
SQL命令 DROP VIEW
DROP VIEW命令是特权操作。在使用DROP VIEW之前,进程必须拥有指定视图的%DROP_VIEW管理权限或DELETE OBJECT权限。否则将导致SQLCODE-99错误(特权冲突)。可以通过调用%CHECKPRIV命令来确定当前用户是否具有删除权限。可以通过调用$SYSTEM.SQL.Security.CheckPrivileve()方法来确定指定用户是否具有删除权限。如果拥有适当的授予权限,则可以使用GRANT命令分配%DROP_VIEW权限。
用户7741497
2022/05/05
7340
SQL定义表(一)
可以通过定义表(使用CREATE TABLE)或通过定义投影到表的持久类来创建表:
用户7741497
2022/06/06
1.3K0
SQL命令 CREATE TABLE(六)
可选的WITH子句可以在表格元素逗号结尾的圆括号之后和Shard Key定义(如果存在的话)之后指定。 WITH子句可以包含一个用逗号分隔的列表:
用户7741497
2022/04/15
4190
SQL命令 DROP TABLE
DROP TABLE命令删除一个表及其对应的持久化类定义。如果该表是其架构中的最后一项,则删除该表也会删除该架构及其相应的持久化类包。
用户7741497
2022/05/05
1.3K0
SQL命令 LOCK
LOCK命令显式锁定SQL表。 此表必须是已存在的表,对其具有必要的特权。 如果tablename是一个不存在的表,LOCK会失败并出现编译错误。 如果tablename是临时表,则命令执行成功,但不执行任何操作。 如果tablename是视图,则命令失败,并出现SQLCODE -400错误。
用户7741497
2022/05/06
6880
SQL命令 CREATE TRIGGER(一)
CREATE TRIGGER命令定义触发器,即修改特定表中的数据时要执行的代码块。当特定的触发事件发生时(例如将新行插入到指定表中),就会执行(“触发”或“拉出”)触发器。触发器执行用户指定的触发器代码。可以指定触发器应该在执行触发事件之前或之后执行此代码。触发器特定于指定表。
用户7741497
2022/04/18
2.1K0
SQL命令 GRANT(一)
GRANT命令将对指定的表、视图、列或其他实体执行指定任务的权限授予一个或多个指定的用户或角色。 可以进行以下基本操作:
用户7741497
2022/05/05
1.8K0
相关推荐
SQL命令 DROP FUNCTION
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验