oracle存储过程返回数组给java程序

本文介绍了如何处理Oracle存储过程返回的数组在Java程序中的问题,包括在Oracle中创建数组类型、存储过程和函数,以及Java代码的处理。在实际操作中遇到了乱码问题,通过添加相应jar包解决了这个问题。
摘要由CSDN通过智能技术生成

      首先在oracle中新建两个数组类型:

          

create or replace type str_list as varray(1000) of varchar2(40)


 

create or replace type num_list as varray(1000) of number


 

   新建存储过程

  

create or replace procedure getRainFallMessage(
    --开始时间
    beginTime in varchar2,
    --结束时间
    endTime   in varchar2,
    --返回市、县列表
    citys  out str_list,
    --返回市、县降雨总量
    sums   out num_list
)
is
   v_citys   str_list:=str_list();
   v_sums    num_list:=num_list();
   v_cityNames str_list:=str_list();
   v_hasCountory  number:=0;
begin
   --获取所有县/市的行政区划编码
   select getCountryAndCity() into v_citys from dual;
   --遍历,获取每个县/市的降雨总量
   for i in 1 .. v_citys.count loop
      select count(*)  into  v_hasCountory from st_addvcd_d t where  
           rtrim(ltrim(t.addvcd))= rtrim(ltrim(v_citys(i)));
      if(v_hasCountory<>0)  then
         v_sums.extend();
         v_cityNames.extend();
         --取得县/市名称
         select t.addvnm into v_cityNames(i) 
              from st_addvcd_d t where  
               rtrim(ltrim(t.addvcd))= rtrim(ltrim(v_citys(i)));
         --取得降雨量
         select getRainSumByAddvcd(v_citys(i),beginTime,endTime)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值