大剑
天天加班,哪有时间写博客 ---- 专注于ERP软件开发技术,关注Oracle相关技术

Oracle 存储过程返回多个值 3

2009年7月15日 06:18 in ORACLE tags: oracle 参数 返回值 in out

 

在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里分别保存了存储过程返回的结果.