Help Center/
GaussDB/
Developer Guide(Centralized_V2.0-8.x)/
Stored Procedure/
Recompilation upon Expiration/
Re-creating the Package Header Without Deleting the Package Body
Updated on 2025-05-29 GMT+08:00
Re-creating the Package Header Without Deleting the Package Body
The package body definition is not deleted when the package header is re-created.
Examples
-- Create a package header and body. 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 -- Re-create the package header. CREATE OR REPLACE PACKAGE pkg_1 AS var1 int; var2 int; var3 int; PROCEDURE proc1; END pkg_1; / CREATE PACKAGE -- Query the status and verify that the package body definition is not deleted. 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) -- The package body object is set to invalid. 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 a created object. DROP PACKAGE pkg_1; NOTICE: drop cascades to function public.proc1() DROP PACKAGE -- The definitions of the package header and body are deleted. 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)
Parent topic: Recompilation upon Expiration
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.
The system is busy. Please try again later.
For any further questions, feel free to contact us through the chatbot.
Chatbot