云数据库 GAUSSDB-嵌套的子程序:语法格式

时间:2024-07-01 18:37:09

语法格式

  • 创建子存储过程语法格式:
    1
    2
    3
    4
    5
    6
    7
    8
    PROCEDURE procedure_name [ (parameters) ]
        [{IMMUTABLE  | STABLE  | VOLATILE }
         | {CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT }]
        { IS | AS }
        [ declarations ]
    BEGIN
        plsql_body
    END;
    
  • 创建子函数语法:
    1
    2
    3
    4
    5
    6
    7
    8
    FUNCTION function_name  [ (parameters) ] RETURN rettype     
        [{IMMUTABLE  | STABLE  | VOLATILE }
         | {CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT }]
        { IS | AS }
        [ declarations ]
    BEGIN
        plsql_body
    END;
    

    在declarations部分可再定义下层的嵌套子程序。

  • 示例:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    -- 创建一个存储过程
    CREATE OR REPLACE PROCEDURE proc_test() AS
        -- 声明并定义一个子存储过程
        PROCEDURE proc_sub() IS
        BEGIN
            dbe_output.put_line('this is subpragram');
        END;
    BEGIN
        dbe_output.put_line('this is a procedure');
        -- 执行块内调用子存储过程 
        proc_sub();
    END;
    /
    -- 外部调用存储过程
    BEGIN
        proc_test;
    END;
    /
    -- 输出结果
    this is a procedure
    this is subpragram
    ANONYMOUS BLOCK EXECUTE
    
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0773.html