PL/SQL 联合数组与嵌套表
来源:互联网 发布:ubuntu root密码设置 编辑:程序博客网 时间:2024/06/03 12:28
PL/SQL 联合数组与嵌套表
转自:http://blog.csdn.net/leshami/article/details/7372061
通常情况下,在PL/SQL中,处理单行单列的数据可以使用标量变量,而处理单行多列的数据则使用PL/SQL记录是不错的选择。
单列多行数据则由联合数组或嵌套表来完成,其特点是类似于单列数据库表。
在Oracle 9i 之前称为PL/SQL索引表,9i 之后称之为联合数组。
嵌套表也是集合类型中的一种,下面分别介绍这两种集合数据类型的使用方法。
一、联合数组
1、联合数组的特性
类似于一张简单的SQL表,按照主键检索数据
其数据行并不是按照预定义的顺序存储。当使用变量来检索其数据时,每行数据会分配一个连续的下标且从1开始。
下标可以为负值,且下标的数据类型支持binary_integer,pls_integer,varchar2
其数据元素个数无限制
不能作为表列的数据类型使用,即只能作为PL/SQL复合数据类型使用
存放的数据类型是临时数据,故不支持insert,select into 等SQL语句,等同于SQL server中的表变量
2、语法
TYPEtype_name IS TABLE OF element_type [NOT NULL] -->element_type为联合数组元数据指定数据类型(先使用TYPE声明表结构)
INDEX BYkey_type; -->元素下标的数据类型
table_nameTYPE_NAME; -->再使用声明的TYPE类型声明实际数组名
3、示例
--使用PLS_INTEGE类型联合数组
scott@CNMMBO>DECLARE -->定义游标
2 CURSOR name_cur IS
3 SELECT dname
4 FROM dept
5 WHERE deptno < 40;
6
7 TYPE name_type IS TABLE OFdept.dname%TYPE -->定义一个联合数组类型,且其下标的数据类型为PLS_INTEGER
8
转自:http://blog.csdn.net/leshami/article/details/7372061
通常情况下,在PL/SQL中,处理单行单列的数据可以使用标量变量,而处理单行多列的数据则使用PL/SQL记录是不错的选择。
单列多行数据则由联合数组或嵌套表来完成,其特点是类似于单列数据库表。
在Oracle 9i 之前称为PL/SQL索引表,9i 之后称之为联合数组。
嵌套表也是集合类型中的一种,下面分别介绍这两种集合数据类型的使用方法。
一、联合数组
1、联合数组的特性
2、语法
3、示例
--使用PLS_INTEGE类型联合数组
scott@CNMMBO>DECLARE