Oracle 动态数组(没测试。。。)

自己写的动态数组,还没时间去测试~~

但感觉应该没问题!!

 

-------------------------------------------------动态数组  Start------------------------------------------------------******************------

create or replace package body TestArray is
       TestID char,
       TestName varchar2
      
       --最好跟查询表返回结果Table结构相同
       type UserList is record (
            ListID char(9),
            ListName varchar2(30),
            ListAddress varchar2(30),
            ListMail varchar2(30)
       );
      
       type myList is table of UserList index   by   binary_integer; --定义myList为UserList数组;
       my_List myList;      --声明变量my_List为数组
      
       --方法调用开始
       procedure Test(
                 TestID in char(2)
                ,TestName in varchar2(30)
       )is
            ListAddress varchar2(30) := 'da lian';
            ListMail varchar2(30) :='mzyluokai@hotmail.com';    
            lst_sql varchar2(100);    
       begin
             lst_sql := lst_sql || 'select ListID,ListName,ListAddress,ListMail from Test' ;
            
             EXECUTE IMMEDIATE lst_sql    --动态SQL执行
             BULK COLLECT INTO my_List;   --将查询结果放入数组my_List
            
             --
             if ListInsert(my_List) = true then
               
             end if;        
       end Test;
      
       --带返回值的方法
       function ListInsert(
                ListResult in myList
       ) return boolean is
                data_count                  number(10)           := 0;              -- レコード数
       begin
               data_count :=ListResult.count;
              
               --循环
               FOR i IN 1..data_count LOOP
                  insert into testusers(userId,userName,userAdd,userMail)
                  values (ListResult(i).ListID,ListResult(i).ListName,ListResult(i).ListAddress,ListResult(i).ListMail);
               END LOOP;
              
               commit;
               return true;
      
       exception
               when others then
                   rollback;
                   return false;
       end ListInsert;
 begin
 
end TestArray;
-------------------------------------------------动态数组  end -----------------------------------------------------******************------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值