一、基本介绍
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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。