云数据库 GAUSSDB-重编译:示例

时间:2025-06-03 09:37:30

示例

CREATE OR REPLACE FUNCTION func1 RETURN INT AS
BEGIN
RETURN 1;
END;
/
CREATE FUNCTION

CREATE OR REPLACE PACKAGE pkg IS
PROCEDURE proc1();
END pkg;
/
CREATE PACKAGE

CREATE OR REPLACE PACKAGE BODY pkg IS
PROCEDURE proc1() AS
BEGIN
RAISE INFO 'proc1';
END;
END pkg;
/
CREATE PACKAGE BODY

-- 运行失效重编译高级包。
CALL pkg_util.gs_compile_schema('public', false, 1);

-- 执行结果。
INFO:  successful
gs_compile_schema
-------------------

(1 row)

-- 查询状态。
SELECT proname,valid FROM pg_object obj JOIN pg_proc proc ON obj.object_oid = proc.oid AND proname = 'func1' AND propackageid = 0;
proname | valid
---------+-------
func1   | t
(1 row)
SELECT pkgname,object_type,valid FROM pg_object obj JOIN gs_package pkg ON obj.object_oid = pkg.oid AND pkgname = 'pkg';
pkgname | object_type | valid
---------+-------------+-------
pkg     | S           | t
pkg     | B           | t
(2 rows)

-- 执行函数。
SELECT func1();
 func1 
-------
     1
(1 row)
CALL pkg.proc1();
INFO:  proc1
 proc1 
-------

(1 row)

-- 删除已创建的对象。
DROP FUNCTION func1;
DROP FUNCTION

DROP PACKAGE pkg;
NOTICE:  drop cascades to function public.proc1()
DROP PACKAGE
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-1999.html
提示

您即将访问非华为云网站,请注意账号财产安全