Help! pl/sql function

[复制链接]
查看11 | 回复1 | 2011-10-9 15:06:12 | 显示全部楼层 |阅读模式
I want to make one function call for each room situation but
I cannot pass the owa_util.ident_arr correctly. Please help!
v_brookdale_4PersonRoom varchar2(14);
brookdale_4PersonRoom_b owa_util.ident_arr; -- each (i) holds one char and total 14 items
brookdale_4PersonRoom owa_util_ident_arr; -- assemble 14 items into one string.
for example, at the b1 case, if there are 28 brookdale_4PersonRoom_bs
brookdale_4PersonRoom_b(1) := 'a';
brookdale_4PersonRoom_b(2) := 'b';
brookdale_4PersonRoom_b(3) := 'd';
.
.
.
brookdale_4PersonRoom_b(14) := 'r';
*
brookdale_4PersonRoom_b(15) := 'j';
brookdale_4PersonRoom_b(16) := 'k';
brookdale_4PersonRoom_b(17) := 'l';
.
.
.
brookdale_4PersonRoom_b(28) := 'n';
then brookdale_4PersonRoom(1) := 'abd...r'
brookdale_4PersonRoom(2) := 'jkl...n'



total 5 rooms codes and each room name's as below: example brookdale_4Personroom
brookdale_4PersonRoom_b is the value that passed from type=' text'
begin

for b1 in 1.. brookdale_4PersonRoom_b.count loop



v_brookdale_4PersonRoom := v_brookdale_4PersonRoom || brookdale_4PersonRoom_b(b1);

v_in_num := v_in_num + 1;

ifv_in_num = 14 then

v_in_num := 0;



brookdale_4PersonRoom(b1/14) := v_brookdale_4PersonRoom ;

v_brookdale_4PersonRoom := '';

end if;



end loop;

exception

when no_data_found then

null;


end;


begin

v_in_num := 0;

for b2 in 1.. brookdale_5PersonSuite_b.count loop



v_brookdale_5PersonSuite:= v_brookdale_5PersonSuite|| brookdale_5PersonSuite_b(b2);

v_in_num := v_in_num + 1;

if v_in_num = 14 then

v_in_num := 0;

brookdale_5PersonSuite(b2/14) := v_brookdale_5PersonSuite;

v_brookdale_5PersonSuite := '';

end if;



end loop;

exception

when no_data_found then

null;



end;



begin

v_in_num := 0;

for b3 in 1.. ihpum_3PersonStudioApartment_b.count loop

-- EXIT WHEN LENGTH(ihpum_3PersonStudioApartment(b3/14)) <=0;

v_ihpum_3PersonStudioApartment:= v_ihpum_3PersonStudioApartment|| ihpum_3PersonStudioApartment_b(b3);

v_in_num := v_in_num + 1;

if v_in_num = 14 then

v_in_num := 0;

-- htp.p('
');

ihpum_3PersonStudioApartment(b3/14) := v_ihpum_3PersonStudioApartment;

v_ihpum_3PersonStudioApartment := '';

end if;



end loop;

exception

when no_data_found then

null;



end;
begin
v_in_num := 0;

for b4 in 1.. ihpum_4PersonApartment_b.count loop

EXIT WHEN LENGTH(ihpum_4PersonApartment(b4/14)) <=0;

v_ihpum_4PersonApartment:= v_ihpum_4PersonApartment|| ihpum_4PersonApartment_b(b4);

v_in_num := v_in_num + 1;

if v_in_num = 14 then

v_in_num := 0;

-- htp.p('
');

ihpum_4PersonApartment(b4/14) := v_ihpum_4PersonApartment;

v_ihpum_4PersonApartment := '';

end if;



end loop;

exception

when no_data_found then

null;

end;



begin

v_in_num := 0;

for b5 in 1.. ihpum_5PersonApartment_b.count loop



v_ihpum_5PersonApartment:= v_ihpum_5PersonApartment|| ihpum_5PersonApartment_b(b5);

v_in_num := v_in_num + 1;

if v_in_num = 14 then

v_in_num := 0;

-- htp.p('
');

ihpum_5PersonApartment(b5/14) := v_ihpum_5PersonApartment;

v_ihpum_5PersonApartment := '';

end if;



end loop;

exception

when no_data_found then

null;
回复

使用道具 举报

千问 | 2011-10-9 15:06:12 | 显示全部楼层
not quite sure what's the problem you meant
but i guess, you want a use a array object and need to pass the array object as a parameters.
if so, i just suggest to read the docs for array first then see if you really want to use array.
for i myself would like to use ref cursor instead, that would make sense to pass a meaningful parameters to functions
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行