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;

标签: none

添加新评论