`

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;


 

分享到:
评论
1 楼 agan112 2014-02-26  
xili

相关推荐

    Oracle数组的使用

    根据提供的文件信息,我们可以深入探讨Oracle数据库中数组的使用及其在存储过程中的应用方式。这里主要涉及了两种类型的数组:`VARRAY` 和 `ASSOCIATIVE ARRAY`(也称为 `INDEXED TABLE`)。接下来,我们将详细解释...

    ORACLE存储过程中定义数组并且判断某值是否在数组中.txt

    ORACLE存储过程中定义数组并且判断某值是否在数组中。有例子可執行、 、有例子可執行、

    oracle数组存储过程批量插入.docx

    在C#代码中,使用`OracleCommand`创建了一个命令对象,设置其命令类型为存储过程,并通过`OracleParameter`来传递数组参数。 在Java环境中,批量插入数据的处理方式略有不同。首先,需要在数据库中创建一个对象类型...

    c#调用Oracle UDT自定义结构数组类型源代码

    在这个例子中,我们创建了一个`OracleParameter`,设置了它的类型为`OracleDbType.Object`,值为我们的自定义数组类型实例,同时指定`UdtTypeName`为我们在Oracle中定义的UDT名称。 注意,如果是在.NET Core环境中...

    oracle可变数组

    在Oracle数据库中,可变数组(VARRAY)是一种特殊类型的集合数据结构,类似于我们通常理解的数组,但提供了更强大的功能和灵活性。根据给定文件中的描述,“可变数组与嵌套表相似,也是一种集合。一个可变数组是对象...

    Oracle 数组的学习 小知识也要积累,养成好的学习态度

    ### Oracle 数组类型详解 #### 一、引言 在Oracle数据库中,数组是一类非常重要的数据结构,它能够帮助开发者高效地处理大量的数据。本文将深入探讨Oracle中的三种主要数组类型:`INDEX BY TABLE`(索引表)、`...

    查找序列(数组)中的最大值,最小值(例子)

    这里我们以一个具体的例子来详细讲解如何在Java中找到数组中的最大值。 给定的代码示例是用Java编写的,其目的是找到一个double类型的数组`attr`中的最大值。首先,我们来看一下这段代码的主要结构: ```java ...

    java调用存储过程返回数组

    在调用存储过程之前,需要将Java中的数组转换为`OracleArray`对象,这通常涉及到使用`OracleDriver`和`OracleConnection`的`createOracleArray`方法。 以下是一个简单的示例,展示如何处理自定义数组类型的输入和...

    数组和导入导出PPT学习教案.pptx

    总的来说,Oracle数组提供了处理大量同类型数据的有效方式,而自定义对象和数组则允许构建更复杂的数据结构。导出和导入工具则为数据管理提供了极大的灵活性和便利性。理解并熟练掌握这些概念对于任何Oracle数据库...

    只能在PL/SQL中访问联合数组。

    在这个例子中,`num_array`是一个联合数组,可以存储`number`类型的值,通过`binary_integer`索引来访问每个元素。注意,这里的“尺寸”实际上是动态的,因为`index by`允许使用任何整数值作为索引,而不是固定数量...

    Oracle 获取JSON字符串对象的属性值

    对于上述例子,我们可以编写如下查询: ```sql SELECT REGEXP_REPLACE( REGEXP_REPLACE( '{"name":"张三",sex:"男",age:"18",address:"广东省广州市"}', '{"name":"[^"]*"', ''), '"sex.*"', '') as sex FROM ...

    oracle 自定义数据结构和表类型实验

    Oracle提供了两种主要的集合类型:VARRAY(固定大小数组)和NESTED TABLE(可变大小表格)。VARRAY有固定的元素数量限制,而NESTED TABLE则可以动态增长。 例如,你可以创建一个存储PersonType对象的VARRAY类型: ...

    oracle存储过程超详细使用手册

    在Oracle中,没有原生数组概念,但可以通过定义记录类型和表类型来模拟数组行为。Oracle提供了两种方式来模拟数组: - 使用Oracle自带数组类型 ```sql CREATE OR REPLACE PROCEDURE test(y OUT NUMBER) AS x ...

    labview 调用oracle数据库

    在“oracle测试创建表.vi”这个例子中,可能包含一个LabVIEW程序,该程序使用SQL的CREATE TABLE语句来定义新的表结构。CREATE TABLE语法如下: ```sql CREATE TABLE 表名 ( 列名1 数据类型, 列名2 数据类型, ......

    Oracle JSON 字符串处理实例

    在这个例子中,我们解析了一个包含员工信息的JSON字符串,`$.employees[*]`指定了遍历`employees`数组中的所有对象,`name`和`age`列对应于JSON对象中的字段。 Oracle还提供了`GET_JSON_OBJECT`和`GET_JSON_ELEMENT...

    oracle存储过程及触发器总结

    在使用数组时,可以利用Oracle提供的数组类型或者自定义数组类型。 ##### 1. **使用Oracle自带的数组类型** 可以直接使用Oracle提供的数组类型,例如: ```sql CREATE OR REPLACE PROCEDURE test(y OUT ARRAY_...

    PHP (PDO)连接oracle数据库

    这个例子将从名为"your_table"的表中获取所有记录,并以关联数组的形式打印出来。 提供的压缩包文件“PHP(PDO)连接Oracle数据库”可能包含了安装和配置PDO_OCI所需的动态库,以及一个实际的测试脚本,帮助开发者...

    oracle存储过程超详细使用手册.docx

    在本文中,我们将深入探讨Oracle存储过程的创建、变量赋值、判断语句、循环结构以及数组的使用。 1. 创建存储过程: 创建存储过程的基本语法如下所示: ```sql CREATE OR REPLACE PROCEDURE procedure_name (param1...

Global site tag (gtag.js) - Google Analytics