一、基本介绍
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/ ,如需转载,请注明出处,否则将追究法律责任。