GBase 8T数据库存储过程使用出参示例
GBase 8T数据库的存储过程支持入参,出参 out ,入出参 inout。
以下以示例说明存储过程的入参,出参,以及使用存储过程调用出参的过程及方法。
1, 创建存储过程 入参、出参。
drop procedure if exists p3;
create procedure p3(v1 int, out v2 varchar(20))
let v1 = 101;
let v2 = "P3 out parm value";
end procedure;
2, 另一个存储过程用于调用前一个存储过程的入参、出参。需要注意的是:调用的存储过程应对变量指定默认值,不指定值将会报错。
drop procedure if exists c_p3;
create procedure c_p3() returning varchar(20)
define v1 int;
define v2 varchar(20);
let v1 = 22;
let v2 = "C_P3 input default value";
-- SPL inout/out parm must has default value;
call p3(v1,v2);
return v2;
end procedure;
该存储过程返回的v2的应当是p3中出参的值。该存储过程返回的v2的应当是p3中出参的值。
> execute procedure c_p3();
(expression)
P3 out parm value
存储过程同样支持 入参、出参 使用ROW类型
drop procedure if exists p4;
create procedure p4(v1 int, out v2 ROW(col1 int, col2 varchar(20)))
let v1 = 101;
let v2 = ROW(4,"P4_test123");
end procedure;
drop procedure if exists c_p4;
create procedure c_p4() returning varchar(20)
define v1 int;
define v2 ROW(col1 int, col2 varchar(20));
define rc varchar(20);
let v1 = 22;
let v2 = ROW(33,"C_P4test");
-- SPL inout/out parm must has default value;
call p4(v1,v2);
return v2.col2; -- return SPL p4->v2->col2: "P4_test123"
end procedure;