在Oracle中存储过程中,Function可以返回值,但只是一个
加入需要返回多个值,如果不用数组的话,可以用out参数,传出参数
有传出就有传入,in就是传入参数
以PB调用Oracle过程为例:
PL/SQL代码:
/*******************************************************************/
PROCEDURE p_example (ai_a IN NUMBER, ai_b OUT NUMBER, ai_c OUT NUMBER)
IS
ll_count NUMBER;
BEGIN
ll_count := 10;
ai_b := ll_count + ai_a;
ai_c := ll_count - ai_a;
RETURN;
END;
/*******************************************************************/
PB代码:
/*******************************************************************/
long ll_b
long ll_c
long ll_lan
ll_lan = 1
DECLARE p_pro PROCEDURE FOR p_example(:ll_lan);
EXECUTE p_pro ;
if sqlca.sqlcode <> 0 then
CLOSE p_pro ;
return 1
end if
FETCH p_pro INTO :ll_b,:ll_c ;
if sqlca.sqlcode = -1 then
CLOSE p_pro ;
return 1
end if
CLOSE p_pro;
/*******************************************************************/
那么,ll_b,和ll_c里分别保存了存储过程返回的结果.
Host by is-Programmer.com | Power by Chito 1.3.3 beta