ITPub博客

首页 > 数据库 > > GaussDB 100 带有in、out 或in out参数的存储过程简单介绍及应用

GaussDB 100 带有in、out 或in out参数的存储过程简单介绍及应用

作者:GaussDB_数据库 时间:2020-02-25 10:07:32 0 删除 编辑

一、基本介绍

        1,在GaussDB中,存储过程可以不带参数、带单个参数或带多个参数。参数又分为输入参数(in)、输出参数(out)或输入输出参数(in out ),以下将对带参存储过程进行简单的介绍及应用。

二、示例

1,带输入参数和输出参数


第一步;定义带输入参数和输出参数的存储过程

create or  replace procedure  test3(d in  int ,e out  int )
is 
begin
         e :=d+1 ;
         dbms_output.put_line('d的结果是:'||d);
         dbms_output.put_line('返回e的结果是:'||e);
end ;
/

第二步;定义执行调用的存储过程

create or  replace procedure  test4(f in int )
is 
         g int ;
         h int ;
begin
         g:=f+1;
         test3(g ,h);
         dbms_output.put_line('g的结果是:'||g);
         dbms_output.put_line('h的结果是:'||h);
end ;
/

第三步;调用存储过程,显示结果


SQL> call test4(5) ;

d的结果是:6
返回e的结果是:7
g的结果是:6
h的结果是:7


2,带多个输入、输出参数


第一步;定义带输入参数和输出参数的存储过程

reate or  replace procedure  test5(d in  int ,e in int ,f out  int )
is 
begin
         f :=d+e ;
         dbms_output.put_line('d的结果是:'||d);
         dbms_output.put_line('e的结果是:'||e);
         dbms_output.put_line('返回f的结果是:'||f);
end ;
/

第二步;定义执行调用的存储过程

create or  replace procedure  test6(g in int,h in int  )
is 
         i int ;
begin
         test5(g ,h,i);
         dbms_output.put_line('i的结果是:'||i);
end ;
/

第三步;调用存储过程,显示结果 call test6(4,5) ;
        d的结果是:4
        e的结果是:5
        返回f的结果是:9
        i的结果是:9

   注意;带输出参数(out)或输入输出参数(in out)的存储过程不能直接调用,须通过函数、存储过程或触发器间接调用。


3,带in out参数


第一步;定义带输入参数和输出参数的存储过程

create or replace procedure test7( a in out int  )
is 
 b int :=2 ;
begin
 a:=a+b;
 dbms_output.put_line('返回a的结果是:'||a);
end ;
/

第二步;定义执行调用的存储过程

create or  replace procedure  test8(c in int)
is 
begin
 test7(c);
 dbms_output.put_line('c的结果是:'||c);
end ;
/

第三步;调用存储过程,显示结果

        SQL> exec test8(20);

        返回a的结果是:22
        c的结果是:22

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3168286/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 系统表-PG_LANGUAGE
请登录后发表评论 登录
全部评论

注册时间:2020-01-06

  • 博文量
    2907
  • 访问量
    19245