要定义一个integer的数组做为输出结果,以前没写过!各位大哥帮帮忙,下面是我用一个很笨的办法!但现在输出个数变成不确定了再也不能用这种死办法了,而且操作起来也很不方便declare
p_totalnum is varray(15) of integer;
create or replace procedure p_user_total
(
p_kind integer:=0, --如果传入5,则则查询所有数据1、2、3、4分类代表各类型用户
p_totalnum out integer,
p_totalnum_591 out integer, --返回统计结果
p_totalnum_592 out integer,
p_totalnum_593 out integer,
p_totalnum_594 out integer,
p_totalnum_595 out integer,
p_totalnum_596 out integer,
p_totalnum_597 out integer,
p_totalnum_598 out integer,
p_totalnum_599 out integer
)
isbegin
select totalnumber into p_totalnum from t_middle_totaluser
where areanumber = 591 and kind =p_kind ;
select totalnumber into p_totalnum_591 from t_middle_totaluser
where areanumber = 591 and kind =p_kind ;
select totalnumber into p_totalnum_592 from t_middle_totaluser
where areanumber = 592 and kind =p_kind ;
select totalnumber into p_totalnum_593 from t_middle_totaluser
where areanumber = 593 and kind =p_kind ;
select totalnumber into p_totalnum_594 from t_middle_totaluser
where areanumber = 594 and kind =p_kind ;
select totalnumber into p_totalnum_595 from t_middle_totaluser
where areanumber = 595 and kind =p_kind ;
select totalnumber into p_totalnum_596 from t_middle_totaluser
where areanumber = 596 and kind =p_kind ;
select totalnumber into p_totalnum_597 from t_middle_totaluser
where areanumber = 597 and kind =p_kind ;
select totalnumber into p_totalnum_598 from t_middle_totaluser
where areanumber = 598 and kind =p_kind ;
select totalnumber into p_totalnum_599 from t_middle_totaluser
where areanumber = 599 and kind =p_kind ;exception
when others then
p_totalnum_591 := 0;
p_totalnum_592 := 0;
p_totalnum_593 := 0;
p_totalnum_594 := 0;
p_totalnum_595 := 0;
p_totalnum_596 := 0;
p_totalnum_597 := 0;
p_totalnum_598 := 0;
p_totalnum_599 := 0;end p_user_total;
p_totalnum is varray(15) of integer;
create or replace procedure p_user_total
(
p_kind integer:=0, --如果传入5,则则查询所有数据1、2、3、4分类代表各类型用户
p_totalnum out integer,
p_totalnum_591 out integer, --返回统计结果
p_totalnum_592 out integer,
p_totalnum_593 out integer,
p_totalnum_594 out integer,
p_totalnum_595 out integer,
p_totalnum_596 out integer,
p_totalnum_597 out integer,
p_totalnum_598 out integer,
p_totalnum_599 out integer
)
isbegin
select totalnumber into p_totalnum from t_middle_totaluser
where areanumber = 591 and kind =p_kind ;
select totalnumber into p_totalnum_591 from t_middle_totaluser
where areanumber = 591 and kind =p_kind ;
select totalnumber into p_totalnum_592 from t_middle_totaluser
where areanumber = 592 and kind =p_kind ;
select totalnumber into p_totalnum_593 from t_middle_totaluser
where areanumber = 593 and kind =p_kind ;
select totalnumber into p_totalnum_594 from t_middle_totaluser
where areanumber = 594 and kind =p_kind ;
select totalnumber into p_totalnum_595 from t_middle_totaluser
where areanumber = 595 and kind =p_kind ;
select totalnumber into p_totalnum_596 from t_middle_totaluser
where areanumber = 596 and kind =p_kind ;
select totalnumber into p_totalnum_597 from t_middle_totaluser
where areanumber = 597 and kind =p_kind ;
select totalnumber into p_totalnum_598 from t_middle_totaluser
where areanumber = 598 and kind =p_kind ;
select totalnumber into p_totalnum_599 from t_middle_totaluser
where areanumber = 599 and kind =p_kind ;exception
when others then
p_totalnum_591 := 0;
p_totalnum_592 := 0;
p_totalnum_593 := 0;
p_totalnum_594 := 0;
p_totalnum_595 := 0;
p_totalnum_596 := 0;
p_totalnum_597 := 0;
p_totalnum_598 := 0;
p_totalnum_599 := 0;end p_user_total;
(
bbbb IN VARCHAR2
)
RETURN gv_arr
IS
v_ret gv_arr := gv_arr(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
c_size CONSTANT INTEGER := 50; BEGIN CASE
WHEN ... THEN
v_ret(1) := 'cccc' ;
WHEN ... THEN
v_ret(2) := '2222' ;
ELSE
END CASE ; <<exit_here>> NULL; RETURN v_ret; EXCEPTION WHEN OTHERS THEN
RETURN NULL;
END ....;
declare
type rec_name is record
(lastname varchar2(32),
firstname varchar2(32));
type var_array is table of rec_name;
v_rec rec_name;
v_arr var_array := var_array();
begin
v_arr.extend;
v_rec.lastname := 'abc';
v_rec.firstname := 'def';
v_arr(1) := v_rec;
dbms_output.put_line(v_arr(1).lastname);
end;可以借助于record构造一个二维数组...
不知道行否??