更新时间:2025-10-17 GMT+08:00
重建包头不删除包体
重建包头的场景不删除包体定义。
使用示例如下所示。
示例
-- 创建包头包体。
CREATE OR REPLACE PACKAGE pkg_1 AS
var1 int;
var2 int;
PROCEDURE proc1;
END pkg_1;
/
CREATE PACKAGE
CREATE OR REPLACE PACKAGE BODY pkg_1 AS
PROCEDURE proc1 AS
BEGIN
var1 := var1 + var2;
END;
END pkg_1;
/
CREATE PACKAGE BODY
-- 重新创建包头。
CREATE OR REPLACE PACKAGE pkg_1 AS
var1 int;
var2 int;
var3 int;
PROCEDURE proc1;
END pkg_1;
/
CREATE PACKAGE
-- 查询状态,包体定义未被删除。
SELECT * FROM gs_package WHERE pkgname='pkg_1';
pkgnamespace | pkgowner | pkgname | pkgspecsrc | pkgbodydeclsrc | pkgbodyinitsrc | pkgacl | pkgsecdef
--------------+----------+---------+--------------------+----------------------+----------------+--------+-----------
2200 | 10 | pkg_1 | PACKAGE DECLARE +| PACKAGE DECLARE +| | | f
| | | var1 int; +| procedure proc1 as +| | |
| | | var2 int; +| begin +| | |
| | | var3 int; +| var1 := var1 + var2;+| | |
| | | procedure proc1; +| end; +| | |
| | | end | end | | |
(1 row)
-- 包体对象被置为无效。
SELECT * FROM pg_object WHERE object_oid = (SELECT oid FROM gs_package WHERE pkgname='pkg_1');
object_oid | object_type | creator | ctime | mtime | createcsn | changecsn | valid
------------+-------------+---------+-------------------------------+-------------------------------+-----------+-----------+-------
171138 | B | 10 | 2024-12-31 16:50:29.923577+08 | 2025-01-17 15:56:42.271533+08 | | 183936 | f
171138 | S | 10 | 2024-12-24 16:09:29.527485+08 | 2025-01-17 15:56:42.271533+08 | | 183936 | t
(2 rows)
-- 删除已创建的对象。
DROP PACKAGE pkg_1;
NOTICE: drop cascades to function public.proc1()
DROP PACKAGE
-- 包头包体定义被删除。
SELECT * FROM gs_package WHERE pkgname='pkg_1';
pkgnamespace | pkgowner | pkgname | pkgspecsrc | pkgbodydeclsrc | pkgbodyinitsrc | pkgacl | pkgsecdef
--------------+----------+---------+------------+----------------+----------------+--------+-----------
(0 rows)
SELECT * FROM pg_object WHERE object_oid = (SELECT oid FROM gs_package WHERE pkgname='pkg_1');
object_oid | object_type | creator | ctime | mtime | createcsn | changecsn | valid
------------+-------------+---------+-------+-------+-----------+-----------+-------
(0 rows)
父主题: 失效重编译