暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 存储过程带参数并返回输出

原创 章芋文 2019-09-25
1548

一、基本介绍

        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的结果是:7g的结果是:6h的结果是:7


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


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

create 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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论