版本:7.0.0

ALTER PACKAGE ​

功能描述 ​

修改PACKAGE的属性或重编译PACKAGE。当PACKAGE因为依赖的引用对象发生改变而变为失效状态后,直接使用PACKAGE中失效的对象可能会导致错误的执行结果。如PACKAGE中定义存储过程的入参依赖自定义的类型或表字段,对自定义类型或表字段添加新属性后,调用原来的存储过程无法向新添加的属性传参,openGauss支持对这种场景下的PACKAGE进行重新编译,恢复其有效状态。

注意事项 ​

  • 目前仅支持ALTER PACKAGE OWNER和ALTER PACKAGE COMPILE功能,系统管理员默认拥有该权限,有以下权限约束:
    • 当前用户必须是该PACKAGE的所有者或者系统管理员,且该用户是新所有者角色的成员。
  • 仅有初始化用户可以修改定义者权限的package的owner。

语法格式 ​

  • 修改PACKAGE的所属者。

    ALTER PACKAGE package_name OWNER TO new_owner;
  • 重编译PACKAGE。

    ALTER PACKAGE package_name COMPILE { compile_pkg_opt } ;

参数说明 ​

  • package_name

    要修改的PACKAGE名称。

    取值范围:已存在的PACKAGE名,仅支持修改单个PACKAGE。

  • new_owner

    PACKAGE的新所有者。要修改函数的所有者,新所有者必须拥有该PACKAGE所属模式的CREATE权限。

    取值范围:已存在的用户角色。

  • compile_pkg_opt

    重编译PACKAGE的选项,包括SPECIFICATION, BODY, PACKAGE或不指定,不指定时默认选项为PACKAGE。

示例 ​

请参见CREATE PACKAGE中示例。

相关链接 ​

CREATE PACKAGE,DROP PACKAGE