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
- parameter_declaration
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