华为云云数据库GaussDBALTER PACKAGE_云淘科技
功能描述
修改PACKAGE的属性或重编译包。
注意事项
目前仅支持ALTER PACKAGE OWNER功能,系统管理员默认拥有该权限,有以下权限约束:
当前用户必须是该PACKAGE的所有者或者系统管理员,且该用户是新所有者角色的成员。
重编译包需要设置plpgsql_dependency参数。
当打开三权分立时,即使是系统管理员,也必须拥有用户组权限才能修改PACKAGE的owner。
只有初始化用户才能修改package的owner为初始化用户。
三权分立模式下,DEFINER类型package不允许修改属主。非三权分立模式下,仅系统管理员以上权限可以修改package属主。
不允许系统管理员将DEFINER类型的package的属主改为初始用户或运维管理员。
语法格式
修改PACKAGE的所属者。
ALTER PACKAGE package_name OWNER TO new_owner;
重编译包
ALTER PACKAGE package_name COMPILE [PACKAGE | BODY | SPECIFICATION];
参数说明
package_name
要修改的PACKAGE名称。
取值范围:已存在的PACKAGE名,仅支持修改单个PACKAGE。
new_owner
PACKAGE的新所有者。要修改函数的所有者,新所有者必须拥有该PACKAGE所属模式的CREATE权限。
取值范围:已存在的用户角色。
示例
请参见CREATE PACKAGE中示例。
重编译示例:
-- 开启依赖功能 SET behavior_compat_options ='plpgsql_dependency'; -- 创建函数 CREATE OR REPLACE PACKAGE TEST_PKG AS pkg_var int := 1; PROCEDURE test_pkg_proc(var int); END TEST_PKG; / CREATE OR REPLACE PACKAGE BODY TEST_PKG AS PROCEDURE test_pkg_proc(var int) IS BEGIN pkg_var := 1; END; END TEST_PKG; / -- 重编译包 ALTER PACKAGE TEST_PKG COMPILE; -- 删除包 DROP PACKAGE TEST_PKG; -- 关闭依赖功能 SET behavior_compat_options = '';
相关链接
CREATE PACKAGE,DROP PACKAGE
父主题: SQL语法
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家