zoukankan      html  css  js  c++  java
  • oracle数组例子

    --固定数组
    declare
      type type_array is varray(10) of varchar2(20);
      var_array type_array:=type_array('ggs','jjh','wsb','csl','dd','bb');
    begin
      for i in 1..var_array.count loop
          dbms_output.put_line(var_array(i));
      end loop;
    end;

    --可变数组
    declare
      type type_array is table of varchar2(20) index by binary_integer;
      var_array type_array;
    begin
      var_array(1):='aa';
      var_array(2):='bb';
     
      for i in 1..var_array.count loop
         dbms_output.put_line( var_array(i));
      end loop;
     
    end;

    --可变数组取表
    declare
    begin
     
    end;

    create or replace procedure proc_stock(n number)
    as    
           var_stock_code varchar2(10);
           var_stock_price number;
    begin
           for i in 1..n loop
               var_stock_code:= lpad(STR1 =>i ,LEN =>6 ,PAD =>'0' ) ;
              
               var_stock_price:=trunc(dbms_random.value*100)+1;
               --dbms_output.put_line(var_stock_code);
               --dbms_output.put_line(var_stock_price);
               insert into t_stock (stockcode,stockprice)
                      values(var_stock_code,var_stock_price);
               commit;      
           end loop;
    end;
    declare
    begin
           proc_stock(1000000);
    end;
    --用游标访问 14.578秒 13.5 13.8
    declare
           cursor cur is select * from t_stock;
           row_stock t_stock%rowtype;
    begin
           open cur;
           loop
                fetch cur into row_stock;
                exit when cur%notfound;
                null;
           end loop;
           close cur;
    end;

    --用数组实现 4.813 1.953 2
    declare
           type type_array is table of t_stock%rowtype index by binary_integer;
           var_array type_array;
    begin
           select * bulk collect into var_array from t_stock;
           for i in 1..var_array.count loop         
               null;
           end loop;
    end;

    --访问自定义表
    declare
           type type_record is record(
                username varchar2(20),
                sex varchar2(2)
           );
           type_record_user  type_record;
           type type_array is table of type_record_user%type index by binary_integer;
           var_array type_array;      
    begin
           select username,sex bulk collect into var_array from tuser;
           for i in 1..var_array.count loop
               dbms_output.put_line(var_array(i).username);
               dbms_output.put_line(var_array(i).sex);
           end loop;
    end;

  • 相关阅读:
    面试只要问到分布式,必问分布式锁
    Java编程中忽略这些细节,Bug肯定找上你
    不止承上启下,带你了解工业物联网关
    论文解读二十七:文本行识别模型的再思考
    并发高?可能是编译优化引发有序性问题
    论文解读丨LayoutLM: 面向文档理解的文本与版面预训练
    SQL优化老出错,那是你没弄明白MySQL解释计划
    SQL反模式学习笔记1 开篇
    SQL Server中自定义函数:用指定的分隔符号分割字符串
    .NET软件开发与常用工具清单
  • 原文地址:https://www.cnblogs.com/maozhh/p/1855650.html
Copyright © 2011-2022 走看看