示例:
OUT_MSG=$(db2 -v "call liao.proc1('${PAR1}','${PAR2}',?)" )
CMDRET=$?
OUTRET=$(echo "$OUT_MSG" | awk '/Parameter Name/ {PAR=$4} /Parameter Value/ {VAL=$4} /^$/ {if (PAR == "O_RETURN") print VAL}')
db2 - 如何在shell中获取存储过程OUT型参数的返回值
create or replace procedure liao.proc1(
in I_PARAM1 varchar(10)
,in I_PARAM2 varchar(10)
,out O_RETURN integer)
specific liao.proc1
language sql
begin
set O_RETURN=123;
end
@
OUT_MSG=$(db2 -v "call liao.proc1('${PAR1}','${PAR2}',?)" )
CMDRET=$?
#注意这里的$OUT_MSG要用双引号括起否则echo出来后换行符会丢失,还有因为是匹配Parameter所以要在英文环境
OUTRET=$(echo "$OUT_MSG" | awk '/Parameter Name/ {PAR=$4} /Parameter Value/ {VAL=$4} /^$/ {if (PAR == "O_RETURN") print VAL}')
if [ $CMDRET -ne 0 -