`

oracle-可变数组

阅读更多

1.首先创建一个类型(类似于创建一个普通的Java类),用于来做可变数组的类型
该类型的变量支持Oracle支持的所有类型.
当申明了数组后,数组在该表中作为一列存在

语法: create type typename(类型名称) as object
(
id int,
describe varchar2(50)
....... //类型的元素
);

2.创建可变数组

语法:create type arrayname(数组名称) as varray(50) of typename(类型名称)
说明: varray(50) 指定数组长度

3.创建表

craete table user_table
(
id int,
name varchar2(20),
sex int,
arrays arrayname //数组类型
);


查询有可变数组的表:

例子: select * from table ( select u.arrays from user_table u);

说明: select * from table 其中table不特指标明,表名在后面的子查询中
select u.arrays from user_table u 指在user_table中查询,并且查询可变数组

查询得到ResultSet后,与其余select语句操作方法相同,可使用下标获取列的数据
或使用列名获取数据

插入
insert into user_table(2, 'test arrays', 1,
arrayname
(
typename(1, 'Describe ...'),
typename(2, 'Describe ...')
)
);

说明: 插入时,数组作为一列操作.
其中 arrayname 为数组对象,名称
typename 为数组的类型(类型是JavaBen)
一个arrayname中可以有多个数组.
更新参考Insert操作

删除与普通无数组表无区别


///----------------------------

1、创建类型propvalue
create type propvalue as object (
cid int,
pid int,
prop_name varchar2(30),
vid int,
name varchar2(20),
is_parent int
);
2、创建可变数组PropValues

create type propvalues as varray(50) of propvalue;
3、创建表
create table item_prop
(
pid int,
name varchar2(20),
is_key_prop int,
is_sale_prop int,
is_color_prop int,
parent_pid int,
parent_vid varchar2(20),
prop_values propvalues
);

4、向可变数组插入记录

insert into item_prop
values(1627207, '颜色',0,1,1,0,0,
propvalues(
propvalue(50010538,1627207,'颜色', 3232483, '军绿色',1),
propvalue(50010538,1627207,'颜色', 3232484, '天蓝色',1)
)
);

insert into item_prop

values(20509, '尺码',0,1,0,0,0,
propvalues(
propvalue(50010538,20509,'尺码', 28314, 'S',1),
propvalue(50010538,20509,'尺码', 28315, 'M',1)
)
);
5、查询可变数组

Select E .* From Item_Prop Itm , Table(Prop_Values) E
Where E.Cid=50010538 And Itm.Pid=E.Pid

分享到:
评论

相关推荐

    oracle可变数组

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

    Oracle学习笔记(嵌套表、可变数组)

    Oracle学习笔记(嵌套表、可变数组),有具体的代码案例供大家参考

    MLDN魔乐科技JAVA培训_Oracle课堂24_嵌套表、可变数组.rar

    本课程"MLDN魔乐科技JAVA培训_Oracle课堂24_嵌套表、可变数组"着重讲解了Oracle数据库中的两种特殊数据结构——嵌套表和可变数组,它们在处理复杂数据时非常有用。 嵌套表,也称为集合类型,允许在一个列中存储多个...

    MLDN魔乐科技_Oracle课堂24_嵌套表、可变数组

    在Oracle数据库系统中,嵌套表和可变数组是两种重要的高级数据类型,它们提供了处理复杂数据结构的能力,尤其在存储和操作集合类数据时显得非常有用。在本Oracle课堂中,我们将深入探讨这两个概念以及它们在实际应用...

    IBM-oracle

    【IBM-Oracle】是关于IBM和Oracle两大技术巨头在数据库领域的知识对比,特别是关于Oracle数据库中可变数组和嵌套表的使用。本章重点介绍了如何在Oracle数据库中创建和操作可变数组。 首先,可变数组是Oracle数据库...

    Oracle 10g 学习笔记

    ├─10 嵌套表 可变数组 │ createType.sql │ ├─11 PLSQLl语法 │ plsql.sql │ ├─12 索引 │ index.sql │ ├─13 游标 │ cursor.sql │ ├─14 存储过程 │ procedure.sql │ ├─15 函数 │ function....

    ORACLE数组使用方法

    Oracle 数组是一种复杂的数据类型,可以存储多个元素,数组可以分为固定数组和可变数组两种类型。在 Oracle 中,数组可以用来存储大量的数据,并且可以通过索引来访问数组中的元素。 固定数组是一种具有固定长度的...

    oracle数组

    可变数组取表是一种将可变数组作为表的方式。我们可以使用可变数组来存储表的数据,并且可以对数组进行遍历、插入、删除等操作。例如: ```sql declare type type_array is table of t_stock%rowtype index by ...

    嘉兴IBM培训Oracle课件

    嘉兴IBM培训Oracle课件 ORACLE01SQL建表与查询 ORACLE02连接与子查询 ORACLE03DCL,TCL ORACLE04数据库对象 ORACLE05PLSQL编程基础 ORACLE06游标 ORACLE07记录类型与PLSQL表 ...ORACLE12可变数组和嵌套表

    PL/SQL学习笔记

    --可变数组也必须初始化 var1 mytype:=new mytype('a','b','c'); begin var1.extend(2); var1(4):='d'; end; 集合的属性和方法 1.count属性计数 ,可以得到集合的元素数量 2.delete方法 3.exists 判断这个...

    oracle pl/sql从入门到精通 配套源代码

    此外,PL/SQL还支持集合类型,如VARRAY(可变数组)和TABLE(表类型),这对于处理大量数据非常有用。 这本书的配套源代码可能会涵盖以下几个方面: 1. **基础操作**:包括简单的SQL查询、变量声明、流程控制...

    Oracle数据库学习笔记

    Oracle数据库中的对象类型丰富多样,包括抽象数据类型、可变数组、嵌套表、对象表和对象视图。抽象数据类型允许定义自定义的数据结构,不局限于Oracle的标准数据类型,可以用于创建其他复杂的数据类型。可变数组则...

    oracle 适合新手的基本用法

    - VARRAY(可变数组):VARRAY允许我们创建固定大小的数组,每个元素可以是相同类型的值。例如,`CREATE TYPE my_numbers AS VARRAY(10) OF NUMBER;` 创建了一个最多包含10个数字的数组类型。 - Nested Table(嵌套...

    数据库 ORACLE_8_初学者指南2

    2.4.2 可变数组 2.4.3 类型中的类型 2.4.4 方法和类型 2.4.5 对象视图 2.5 小结 2.6 本章小结 第3章 结构 3.1 术语 3.2 为什么要学习结构 3.3 什么是数据库 3.3.1 数据文件 3.3.2 用户数据和系统数据 3.3.3 什么是...

    数据库 ORACLE_8_初学者指南1.rar

    2.4.2 可变数组 2.4.3 类型中的类型 2.4.4 方法和类型 2.4.5 对象视图 2.5 小结 2.6 本章小结 第3章 结构 3.1 术语 3.2 为什么要学习结构 3.3 什么是数据库 3.3.1 数据文件 3.3.2 用户数据和系统数据 3.3.3 什么是...

    18天实战Oracle开发

    - **集合类型**:学习Oracle中的集合类型,如VARRAY(可变数组)和NESTED TABLE(嵌套表),它们允许存储多个值在一个单一的列或变量中。 - **操作集合类型**:掌握如何在PL/SQL中声明、初始化和操作这些集合。 5...

    oracle 10 学习资料.pptx

    Oracle 10g是Oracle数据库的一个重要版本,其在PL/SQL编程方面提供了丰富的特性,如PL/SQL表和记录、嵌套表以及可变数组等。这些特性极大地增强了数据库处理和应用程序开发的能力。 PL/SQL表是PL/SQL块内的一种临时...

    Oracle数据类型详解

    - `VARRAY(n) OF dataType`: 可变数组,长度固定且有限,最多n个元素。 - `TABLE OF dataType INDEX BY indexType`: 动态大小的关联数组,可以用整数或字符串作为索引。 9. **对象类型** - 自定义对象类型允许...

    oracle 高级教程 深入学习集合!

    常见的集合类型包括`VARRAY(可变数组)`和`NESTED TABLE(嵌套表)`。它们在处理大量相似数据时提供了一种高效的方式。 2. **VARRAY(可变数组)** VARRAY是一种固定大小的集合,可以将它理解为数据库中的动态...

Global site tag (gtag.js) - Google Analytics