oracle 集合 varray

原创 2015年07月10日 02:00:36

1、创建语法

      Create Or Replace varray_type_name Is Varray(size_limit) Of Element_type [Not Null];

      varray_obj varray_type_name;

      注:下标从1开始,元素个数有限制 使用变长数组对象元素前,必须使用构造函数初始化

2、实例

Create Or Replace Type varray_type Is Varray(100) Of Varchar2(20) Not Null;

Declare
  varray_obj varray_type;
  n Number;
Begin
  varray_obj:=varray_type('a','b','c');
  If varray_obj.exists(1) Then 
     dbms_output.put_line('--从第1个元素开始输出');
     n:=varray_obj.first;
     Loop
       dbms_output.put_line('下标:'||n||' 值:'||varray_obj(n));
       Exit When n=varray_obj.last;
       n:=varray_obj.next(n);
     End Loop;
     
     dbms_output.put_line('--从最后1个元素开始输出');
     n:=varray_obj.last;
     Loop
       dbms_output.put_line('下标:'||n||' 值:'||varray_obj(n));
       Exit When n=varray_obj.first;
       n:=varray_obj.prior(n);
     End Loop;
  End If;
End;
输出:
--从第1个元素开始输出
下标:1 值:a
下标:2 值:b
下标:3 值:c
--从最后1个元素开始输出
下标:3 值:c
下标:2 值:b
下标:1 值:a


Create Table tmp_varray(Id Number ,phone varray_type);


Insert Into tmp_varray Values(1,varray_type('13100000001','13100000002','13100000003'));
Insert Into tmp_varray Values(2,varray_type('13200000001','13200000002','13200000003'));

Declare
  varray_obj varray_type;
  n Number;
Begin
  Select phone Into varray_obj From tmp_varray Where Id=1;
  If varray_obj.exists(1) Then 
     dbms_output.put_line('--从第1个元素开始输出');
     n:=varray_obj.first;
     Loop
       dbms_output.put_line('下标:'||n||' 值:'||varray_obj(n));
       Exit When n=varray_obj.last;
       n:=varray_obj.next(n);
     End Loop;
     
     dbms_output.put_line('--从最后1个元素开始输出');
     n:=varray_obj.last;
     Loop
       dbms_output.put_line('下标:'||n||' 值:'||varray_obj(n));
       Exit When n=varray_obj.first;
       n:=varray_obj.prior(n);
     End Loop;
  End If;
End;
输出:
--从第1个元素开始输出
下标:1 值:13100000001
下标:2 值:13100000002
下标:3 值:13100000003
--从最后1个元素开始输出
下标:3 值:13100000003
下标:2 值:13100000002

下标:1 值:13100000001

3、Exists():返回指定集合对象元素是否存在    true存在 false不存在

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Oracle三种集合数据类型(索引表,嵌套表,VARRAY 数组)的比较-PLSQL—之三

PL/SQL中没有数组的概念,他的集合数据类型和数组是相似的。在7.3以前的版本中只有一种集合,称为PL/SQL表,在这之后又有两种集合数据类型:嵌套表和varray。其中varray集合中的元素是有...

oracle 三种集合数据类型【varray,嵌套表,联合数组】+record

在oracle 11.2中,oracle总共提供了三种集合类型:varray,嵌套表,联合数组。所谓集合,简单来说就是保存多行数据的数据类型,相当于保存在内存中的小型表,便于暂时保存数据,以及数据的重...

ORACLE 集合(关联数组,嵌套表,VARRAY)

三种集合比较   元素下标 个数限制 初始化 表数据列 索引表 (binary_integer、pls_integer、varchar2) 无限制 不需要 不可以 ...

oracle:变长数组varray,嵌套表,集合

创建变长数组类型 CREATE TYPE varray_type AS VARRAY(2) OF VARCHAR2(50);    这个变长数组最多可以容纳两个数据,数据的类型为 varchar...

ORACLE中RECORD、VARRAY、TABLE的使用详解

ORACLE中RECORD、VARRAY、TABLE的使用详解

racle的STRUCT和VARRAY的读写方法

Oracle的STRUCT和VARRAY的读写方法 巧巧电脑网络 2010-02-25 qqread 佚名   收藏此文  大 中小 分享到 QQ空间 人人网 开心网 豆瓣 新浪...

varray: 灵活的数组结构与stl valarray的解构(2)

上一片文章我们构造了一个简单的varray类,对这个用户定义的具体类型来说,还不够功能完善,有很多的运算符操作都没有放进去。这是特的为了表述清楚而没有加入的。 这类操作包括: 1。取+/-/~/!...

Oracle集合类型介绍

Oracle集合类型介绍   集合类型   1. 使用条件:    a. 单行单列的数据,使用标量变量 。     b. 单行多列数据,使用记录 [ 详细讲解请见: 点击打开链接http:...

oracle高级查询之连接查询、集合运算

一、集合运算 --minus补集,返回第一个查询结果的记录减去第二个查询结果的记录后剩下的记录 SELECT deptno FROM dept MINUS SELECT deptno FROM e...

PLSQL:oracle 集合类型

集  合 定义:         集合是相同类型元素的组合。在集合中,使用唯一的下标来标识其中的每个元素 使用条件: 单行单列的数据,使用标量变量 单行多列数据,使用记录 多行...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)