liaosnet
作者liaosnet2018-04-12 16:01
信息分析/架构师, gbasedbt.com

GBase 8T数据库存储过程使用出参示例

字数 1203阅读 4233评论 1赞 4

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中出参的值。

> 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 values is p4->v2->col2: "P4_test123"
end procedure;

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

4

添加新评论1 条评论

wuwenpinwuwenpin软件开发工程师, 南京
2018-04-13 14:07
感谢分享!
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

X社区推广