create or replace procedure pro_Sel_tbmeetmgrInfo(v_stoptime varchar2,
v_strtime varchar2,
v_endtime varchar2,
v_ecid number,
v_xunhuaimoshi number,
v_huiyimoshi number, --会议模式(1、一次性。2、周期性)
v_roomidB varchar2,
v_roomNameB varchar2,
v_roomid out varchar2,
v_roomName out varchar2) is
TYPE StringArray IS VARRAY(100) of VARCHAR2(600) ;
v_Result StringArray := StringArray(null,null,null,null,null,null,null,null) ;
begin
v_Result(1) := 'haods';
v_Result(2) := 'haodsgd';
v_Result(3) := 'tiantian';
v_Result(4) := '晚睡';
v_Result(5) := 'haods';
v_Result(6) := 'haodsgd';
v_Result(7) := 'tiantian';
v_Result(8) := '晚睡';
for i in 1..8 loop
dbms_output.put_line('v_Result['||i||']='||v_Result(i));
/*在这里需要查询表、并把表中的数据Out出去~~~表中的数据有很多!需要用到数组或者其它东西Out给程序!
但是我在定义数组的时候就开始悲剧了、如果只定义两个null(不知道这个是初始化还是什么鬼东西)
v_Result StringArray := StringArray(null,null);那么执行(Test)的时候就在v_Result(3) := 'tiantian';
这行报错。如果加上四个null就在v_Result(5) := 'haods';这报错!
希望各位给说说我该怎么用才能让数组作为Out参数返回出去、还有就是上面这个伤心的null、*/
end loop;
end;
我刚刚学Oralce没多久、不知道这玩意怎么弄、o(︶︿︶)o 唉!!!希望高手们给看看!可能我表达不是很清楚、希望大侠们能多多包含!!!
create or replace procedure test(out_set out sys_refcursor) is
begin
open out_set for select * from emp;
end;
/2、使用可变数组有长度限制,一旦声明后长度不能改变。
你可以在语句前
dbms_output.put_line('v_Result['||i||']='||v_Result(i));
加
v_Result.extend; --但扩展不能超出你声明的1003、嵌套表没有元素限制。
TYPE StringArray IS table of VARCHAR2(600) ;