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;

  • 相关阅读:
    oracle解决连接池不足
    ORA-12537:TNS连接已关闭
    oracle 11g 大量废连接占满数据库连接问题处理
    oracle: 浅谈sqlnet.ora文件的作用,及SQLNET.AUTHENTICATION_SERVICES设置
    查询oracle数据库的数据库名、实例名、ORACLE_SID
    工程:有价值的事物的创建过程,及依赖的资源与知识
    工程学
    并发的本质是任务空间与执行空间
    异步的本质是不确定性
    聊一聊 redux 异步流之 redux-saga
  • 原文地址:https://www.cnblogs.com/maozhh/p/1855650.html
Copyright © 2011-2022 走看看