`

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                           --数组的长度用count

      dbms_output.put_line(var_array(i));  

  end loop;  

end;  










1.COUNT             返回集合中元素的个数    
2.DELETE            删除集合中所有元素    
3.DELETE(x)         删除元素下标为x的元素      对VARRAY非法     
4.DELETE(x,y)       删除元素下标从X到Y的元素   对VARRAY非法     
5.EXIST(x)          如果集合元素x已经初始化,则返回TRUE, 否则返回FALSE    
6.EXTEND            在集合末尾添加一个元素      对Index_by非法    
7.EXTEND(x)         在集合末尾添加x个元素       对Index_by非法    
8.EXTEND(x,n)       在集合末尾添加元素n的x个副本 对Index_by非法    
9.FIRST             返回集合中的第一个元素的下标号,对于VARRAY集合始终返回1。    
10.LAST              返回集合中最后一个元素的下标号, 对于VARRAY返回值始终等于COUNT.    
11.LIMIT             返回VARRY集合的最大的元素个数   Index_by集合和嵌套表无用    
12.NEXT(x)           返回在第x个元素之后及紧挨着它的元素值,如果x是最后一个元素,返回null.    
13.PRIOR(x)          返回在第x个元素之前紧挨着它的元素的值,如果x是第一个元素,则返回null。    
14.TRIM              从集合末端开始删除一个元素  对于index_by不合法    
15.TRIM(x)           从集合末端开始删除x个元素   

var_array.next(3);   //返回var_array(3)

可变数组  

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
type type_array is table of t_user%rowtype index by binary_integer;   --类似二维数组
var_array type_array;
begin
     select * bulk collect into var_array from t_user;
     for i in 1..var_array.count loop
         dbms_output.put_line(var_array(i).user_id);          --二维数组的访问
         dbms_output.put_line(var_array(i).username);
     end loop;
end;
分享到:
评论

相关推荐

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

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

    oracle数组定义与使用.pdf

    以下是对Oracle数组定义与使用的详细说明: 1. 定义数组: - 固定长度的一维数组:使用`VARRAY`(Variable Array)关键字,如`type type_array is varray(10) of varchar2(20)`,这里定义了一个包含10个元素,每个...

    oracle数组实现

    ### Oracle数组实现概述 在Oracle数据库中,数组是一种非常有用的数据结构,用于存储相同类型的多个元素。它可以帮助我们更高效地处理大量数据,并简化代码逻辑。Oracle提供了几种不同的方式来实现数组,包括VAR...

    Oracle数组的使用

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

    oracle_split_函数_返回数组

    在Oracle数据库中,由于内置函数不直接支持像Java中的`split`那样拆分字符串并返回数组,因此开发者需要自定义函数来实现这一功能。这里提到的两种方法都是为了解决这个问题,即根据指定的分隔符将字符串拆分为一个...

    oracle数组存储过程批量插入

    数组在Oracle中的使用通常涉及定义PL/SQL类型,这允许我们创建索引数组以存储特定数据类型。 首先,我们创建一个名为`MSGPAG`的包,其中定义了一个名为`MSG_ARRAY`的类型,它是一个索引为整数的VARCHAR2数组。然后...

    oracle可变数组

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

    Oracle定义联合数组及使用技巧

    Oracle中的联合数组,也称作PL/SQL表,是一种特殊的数据结构,仅能在PL/SQL环境中使用,不能直接用于数据库表。联合数组不需要初始化,没有特定的构造函数语法,因此在赋值前无需预分配存储空间,也无需使用EXTEND...

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

    本篇文章将深入探讨如何在C#中调用Oracle的UDT(用户定义类型)以处理自定义结构数组类型,并提供相关的源代码示例。 UDT在Oracle数据库中允许我们创建自定义的数据类型,这些类型可以包含复杂的数据结构,如结构体...

    oracle存储过程返回多行多列的结构化数组,java调用并解析

    总结来说,本示例展示了如何在Oracle存储过程中定义和使用结构化数组,以及如何在Java中调用这些存储过程并解析返回的多行多列数据。通过这种方式,你可以高效地处理复杂的数据结构,同时利用Java的灵活性来处理这些...

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

    Oracle 数组存储过程批量插入 本文主要讲解了如何使用 Oracle 数组存储过程来实现批量插入功能。通过创建一个存储过程,使用数组作为参数来传递大量数据,然后在存储过程中进行批量插入操作。 首先,需要创建一个...

    Spring访问传入数组参数的Oracle存储过程

    1. **创建Oracle数组类型**:在Oracle数据库中,首先需要定义一个PL/SQL类型的数组,比如`NUMBER_TABLE`,它是一个可以存储数字的数组类型。 ```sql CREATE TYPE NUMBER_TABLE AS TABLE OF NUMBER; ``` 2. **创建...

    oracle class12.jar nls_charset12.jar存储过程接收数组空值

    PL/SQL类型的数组是定义在PL/SQL块内的,而Oracle Collection类型如`SYS.ODCINUMBERLIST`或`SYS.ODCIVARCHAR2LIST`则可以在PL/SQL和SQL之间传递。当我们尝试向存储过程传递包含空值的数组时,如果不正确处理,可能会...

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

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

    oracle 用表结构创建 type

    在Oracle数据库中,Type是一种用户定义的数据类型,可以用来表示复杂的对象结构。这些Type可以包含属性和方法,并且可以在PL/SQL中像内置数据类型一样使用。Type主要有以下几种类型: - **OBJECT**:用于表示单个的...

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

    在这个例子中,我们创建了一个名为`A`的公共类,并在其中定义了`main`方法,这是Java程序的入口点。数组`attr`包含了七个double类型的数据,我们初始化变量`m`为数组的第一个元素`attr[0]`,假设它是最小值。然后,...

    整理:oracle pl/sql 入门+ 数组使用+游标+动态SQL

    在这个“整理:Oracle PL/SQL 入门+数组使用+游标+动态SQL”文档中,我们将深入探讨这四个关键概念。 1. Oracle PL/SQL入门: - PL/SQL的基本结构:PL/SQL由声明部分、执行部分和异常处理部分组成,用于定义变量、...

    java调用存储过程返回数组

    总结来说,Java调用存储过程并处理返回数组,需要理解存储过程的定义,正确使用`CallableStatement`或其子类如`OracleCallableStatement`,以及处理Oracle特定数据类型的方法。通过这些技巧,我们可以有效地在Java...

    Oracle Array定义

    - `table of`关键字用于定义数组,`index by`后面跟着的类型(这里是`pls_integer`)指定了数组下标的类型。 2. **初始化数组**: - 数组可以默认初始化为空,也可以在声明时赋值。例如: ```sql DECLARE type...

Global site tag (gtag.js) - Google Analytics