跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

ALTER PROCEDURE

ALTER PROCEDURE语句用于修改当前 Schema 中用户定义的过程(User-Defined Procedure,简称 UDP),包括修改 UDP 的名称和描述。

若要修改 UDP 的入参而不改变其名称和过程体,须先删除该 UDP 再创建一个新 UDP。

若要修改过程体而不改变其名称和入参,须使用 CREATE OR REPLACE PROCEDURE 语句。

Note

对非默认 Schema 或其中的对象执行操作时,用户既要通过隐式访问规则或显式USAGE授权获得该 Schema 的访问权,也要具备目标操作所需的权限。Schema 访问校验和目标操作所需的权限校验相互独立,满足其中一项不能替代另一项。Schema 访问控制不适用于临时图、内置 Procedure 和内置 Function。更多信息,请参见 Schema 访问控制。

前提条件

  • 若要修改 UDP,必须是 UDP 的所有者,或具备在 UDP 上执行ALTER操作的权限,或具备在当前 Schema 执行ALTER ANY PROCEDURE操作的权限。更多信息,请参见角色与权限。
  • 已创建 UDP。更多信息,请参见 CREATE PROCEDURE。

语法

alter_procedure_statement
ALTER PROCEDURE procedure_name ( parameter_declaration , ) COMMENT new_comment_string RENAME TO new_procedure_name
parameter_declaration
parameter_name parameter_type DEFAULT default_value

alter_procedure_statement ::=
    'ALTER' 'PROCEDURE' procedure_name '(' ( parameter_declaration ( ',' parameter_declaration )* )? ')' 
    ( ('COMMENT' new_comment_string) | 
    ('RENAME' 'TO' new_procedure_name) )

parameter_declaration  ::=
    parameter_name? parameter_type ('DEFAULT' default_value )?   

参数

procedure_name

待修改的 UDP 的名称。

parameter_name

UDP 接受的入参名称。

parameter_type

UDP 接受的入参的数据类型。

default_value

入参的默认值。

new_comment_string

UDP 的新描述。

new_procedure_name

待修改的 UDP 的新名称。

procedure_name必须是标识符。更多信息,请参见标识符命名规则。

示例

修改 UDP 的描述

'''
// 创建名为`test1`的 UDP
CREATE OR REPLACE PROCEDURE test4(a INT, b STRING) RETURNS (x INT, y STRING) COMMENT 'test_comment_1' AS { RETURN a, b }
'''

'''
ALTER PROCEDURE test4(INT, STRING) COMMENT 'test_comment_2'
'''

修改 UDP 的名称

ALTER PROCEDURE test4(INT, STRING) RENAME TO test44