ALTER PACKAGE
Description
Modifies the attributes of a package or recompiles a package.
Precautions
- Currently, only users with the ALTER PACKAGE OWNER permission can run this command. By default, system administrators have the permission. The restrictions are as follows:
- The current user must be the owner of the package or a system administrator and a member of the new owner role.
- The plpgsql_dependency parameter must be set for package recompilation.
- Only the initial user can modify the owner of the package that has the definer permission.
- When separation of duties is enabled, to change the owner of a package, users must have the user group permission, even a system administrator. The owner of a package of the DEFINER type cannot be changed.
- Only the initial user can change the owner of a package to the initial user.
- When separation of duties is disabled, only a system administrator or a higher-level user can change the package owner, but the owner cannot be changed to an O&M administrator.
- System administrators are not allowed to change the owner of a package of the DEFINER type to the initial user or OPRADMIN.
Syntax
- Change the owner of a package.
ALTER PACKAGE package_name OWNER TO new_owner;
- Recompile the package.
ALTER PACKAGE package_name COMPILE [PACKAGE | BODY | SPECIFICATION];
Parameters
- package_name
Specifies the name of the package to be modified.
Value range: an existing package name. Only one package can be modified at a time.
- new_owner
Specifies the new owner of a package. To change the owner of a package, the new owner must have the CREATE permission on the schema to which the package belongs.
Value range: an existing user role
Examples
For details, see CREATE PACKAGE.
-- Enable the dependency function. gaussdb=# set behavior_compat_options ='plpgsql_dependency'; -- Create a function. gaussdb=# create or replace package test_pkg as pkg_var int := 1; procedure test_pkg_proc(var int); end test_pkg; / gaussdb=# create or replace package body test_pkg as procedure test_pkg_proc(var int) is begin pkg_var := 1; end; end test_pkg; / -- Recompile the package. gaussdb=# alter package test_pkg compile;
Helpful Links
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot