db2如何调用带out参数的存储过程

db2如何调用带out参数的存储过程?用call调用好像不行,关键是参数怎么办?我刚测试了一下
declare cnt integer;
call p_test(cnt);
这样会报错,
begin
declare a integer;
call asus.p_t(a);
end;
这样也不行,请问在db2里面怎么调用这个带out参数存储过程.

第1个回答  2014-07-24
declare 出参变量1 ...;
出参变量2...;
.....;
出参变量N...;
begin
过程(入参1,入参2,...,入参N,出参1,出参2,...,出参N);
end;
/追问

老大,你这是oracle的用法,我已经试了,不行的。

本回答被网友采纳
第2个回答  2021-04-27

MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地

第3个回答  推荐于2017-09-03
db2 => CREATE PROCEDURE HelloWorld2 ( \
db2 (cont.) =>   IN vUserName VARCHAR(10),  \
db2 (cont.) =>   OUT vOutValue VARCHAR(10), \
db2 (cont.) =>   INOUT vInOutValue VARCHAR(10)) \
db2 (cont.) => LANGUAGE SQL \
db2 (cont.) => BEGIN \
db2 (cont.) =>   INSERT INTO test_helloworld \
db2 (cont.) =>     VALUES('Hello ' || vUserName || vInOutValue); \
db2 (cont.) =>   SET vOutValue = 'A';  \
db2 (cont.) =>   SET vInOutValue = 'B';  \
db2 (cont.) => END
DB20000I  SQL 命令成功完成。

  
db2 => truncate table  test_helloworld IMMEDIATE
DB20000I  SQL 命令成功完成。

  
db2 => BEGIN \
db2 (cont.) =>   DECLARE p_outval VARCHAR(10); \
db2 (cont.) =>   DECLARE p_inoutval VARCHAR(10); \
db2 (cont.) =>   SET p_inoutval = '~Hi~'; \
db2 (cont.) =>   call HelloWorld2('Edward', p_outval, p_inoutval); \
db2 (cont.) =>   INSERT INTO test_helloworld VALUES('p_outval=' || p_outval); \
db2 (cont.) =>   INSERT INTO test_helloworld VALUES('p_inoutval=' || p_inoutval)
; \
db2 (cont.) => END
DB20000I  SQL 命令成功完成。

  

db2 => select * from test_helloworld
DATA
--------------------
Hello Edward~Hi~
p_outval=A
p_inoutval=B
  3 条记录已选择。

 

是不是你没有加  begin  和  end  啊?

本回答被提问者采纳
相似回答