首页 > 编程知识 正文

procedure存储过程,sql prepare

时间:2023-05-06 12:54:44 阅读:115195 作者:4243

文章目录第35章SQL命令DROP PROCEDURE大纲参数的示例说明

第35章SQL命令DROP PROCEDURE

删除存储过程

大纲dropprocedureprocname [从类名称] dropprocprocname [从类名称]参数procname - procname要删除的过程的名称。 名字是标识符。 请不要为过程指定参数括号。 名称可以是限定的(schema.name )或非限定的。 除非指定FROM className子句,否则非限定过程名称将使用缺省架构名称。 FROM className -可选-如果指定,FROM className子句将从特定类中删除过程。 如果未指定此子句,IRIS将在架构的所有类中搜索并删除过程。 但是,如果找不到具有此名称的过程,或者找到多个具有此名称的过程,则返回错误代码。 如果删除过程导致空类,DROP PROCEDURE也会删除该类。 说明DROP PROCEDURE命令从当前命名空间中删除的过程。 删除过程时,IRIS会从授予该过程的所有用户和角色中取消过程,并将其从数据库中删除。

要删除进程,您必须具有GRANT命令指定的%DROP_PROCEDURE管理权限。 如果要删除具有已定义所有者的类的过程,必须以类的所有者身份登录。 否则,将发生SQLCODE-99错误(违反权限)。

如果类定义(包括过程定义)是已部署的类,则不能删除过程。 此操作将失败,出现SQLCODE-400错误,并更改显示%msg Unable to Execute DDL时部署的类“‘class name’”。

进程名称不区分大小写。 必须指定不带参数括号的procname; 如果指定参数括号,则会出现SQLCODE-25错误。

支持procname和from className的以下组合: 请注意,FROM子句指定类包名称和过程名称,而不是SQL名称。 在这些示例中,整个系统的默认架构名称为SQLUser,它对应于User类包。

dropprocedurebonuscalcfromprocbonuscalc : dropstheproceduresqluser.bonus calc (。

dropprocedurebonuscalcfromuser.procbonuscalc : dropstheproceduresqluser.bonus calc (

dropproceduretest.bonuscalcfromprocbonuscalc : dropstheproceduresqluser.bonus calc ()。

dropprocedurebonuscalcfromemployees.procbonuscalc : dropstheprocedureemployees.bonus calc ()。

dopproceduretest.bonuscalcfromemployees.procbonuscalc : dropstheprocedureemployees.bonus calc ()。

如果指定的过程不存在,DROP PROCEDURE将生成SQLCODE-362错误。 如果指定的类不存在,DROP PROCEDURE将生成SQLCODE-360错误。 如果指定的过程可以引用两个或多个过程,DROP PROCEDURE将生成SQLCODE-361错误。 必须指定类名才能解决此歧义。

要确定当前命名空间中是否存在指定的进程名称,请使用$ system.SQL.schema.procedure exists ()方法。 此方法标识使用PROCEDURE关键字定义的过程和方法。 可以使用DROP PROCEDURE删除由PROCEDURE关键字定义的方法。

如果对属于ObjectScript类查询进程的进程运行DROP进程,则IRIS将执行myprocExecute (、myprocGetInfo )、myprocFetch、myprocFetchRows )

也可以通过从类定义中删除存储过程并重新编译类或删除整个类来删除过程。

以下嵌入式SQL示例尝试从类User.Employee中删除myprocSP。

ClassMethod DropProcedure () SQL ) dropproceduremyprocspfromuser.employee ) if SQLCODE=0 {w!'进程已删除' } elseif SQLCODE=-360 {w!'不存在的类: ',%msg } elseif SQLCODE=-362 {w!'不存在的函数: ',%msg } else {w!'意外错误代码: ',SQLCODE}}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。