云数据库 GAUSSDB-CREATE PACKAGE:语法格式

时间:2024-11-13 14:45:53

语法格式

  • CREATE PACKAGE SPECIFICATION语法格式。
    CREATE [ OR REPLACE ] PACKAGE [ schema ] package_name
        [ invoker_rights_clause ] { IS | AS } item_list_1 END [ package_name ];

    • invoker_rights_clause可以被声明为AUTHID DEFINER或者AUTHID CURRENT_USER,分别为定义者权限和调用者权限。
    • item_list_1可以为声明的变量或者存储过程以及函数。
    • END后的package_name可省略(gs_dump生成的sql文件,PACKAGE定义会自动补上END后名称)。

    PACKAGE SPECIFICATION(包头)声明了包内的公有变量、函数、异常等,可以被外部函数或者存储过程调用。在PACKAGE SPECIFICATION中只能声明存储过程、函数,不能定义存储过程或者函数。

  • CREATE PACKAGE BODY语法格式。
    CREATE [ OR REPLACE ] PACKAGE BODY [ schema ] package_name
        { IS | AS } declare_section [ initialize_section ] END [ package_name ];

    END后的package_name可省略(gs_dump生成的sql文件,PACKAGE定义会自动补上END后名称)。

    PACKAGE BODY(包体内)定义了包的私有变量、函数等。如果变量或者函数没有在PACKAGE SPECIFICATION中声明过,那么这个变量或者函数则为私有变量或者私有函数。

    PACKAGE BODY也可以声明实例化部分,用来初始化package,详见示例。

support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0559.html