create or replace function getcustprodinstaddr(in_CustId in number,in_area_code in number) return varchar2 is Result varchar2(4000); v_acc_nbr varchar2(400); tempCount number:=1; type ref_cursor is ref cursor; v_cursor ref_cursor; begin Result:=''; open v_cursor for 'select install_addr from tb_prd_prd_inst_'||to_char(in_area_code)|| ' where PRD_INST_STAS_ID not in(''1003'',''1101'',''1401'',''1102'') and own_cust_id='||to_char(in_CustId)||' order by install_date desc'; loop fetch v_cursor into v_acc_nbr; exit when v_cursor%notfound; if(tempCount>8) then goto label_end; end if; Result:=v_acc_nbr||','||Result; tempCount := tempCount +1; end loop; <<label_end>> close v_cursor; return(Result); exception when others then if(v_cursor%isopen) then close v_cursor; end if; return ''; end getcustprodinstaddr;