Oracle学习笔记--复合数据类型
洛基 - BY - 2007-4-6 14:54:001、PL/SQL记录
适用于处理单行多列数据
eg:
type emp_record_type is record(
name emp.ename%type,
salary emp.salary%type,
dno emp.detno%type
);
emp_record emp_record_type;
2、PL/SQL集合
适用于处理单列多行的数据
2.1 索引表
eg1:
type ename_table_type is table of emp.ename%type
index by binary_integer; --(还可以是pls_integer)
ename_table ename_table_type;
以下是两种放法:
.................
forall i in ename_table.first..ename_table.last
/* sql语句*/
...................
for i in 1..ename_table.count loop
/* sql语句 */
end loop
..............
eg2:
type ename_table_type is table of number
index by varchar(20);
ename_table ename_table_type;
................
ename_table('上海')=1;
ename_table('北京')=2;
..............
eg3:
ename_table.delete; --清空索引表的数据
2.2 嵌套表
下标从1开始,元素个数没有限制。
eg:
Type ename_table_type is table of emp.ename%type;
ename_table ename_table_type:=ename_table_type('A','A'); --必须要先初始化
......
dbms_output.put_line(ename_table(2));
......
2.3 变长数组
下标从1开始,元素的最大个数是有限制的
eg:
Type ename_table_type is varray(20) of emp.ename%type;
ename_table ename_table_type:=ename_table_type('A','A'); --必须要先初始化
3、PL/SQL 记录表
适用于多行多列数据
eg:
Type ename_table_type is table of emp%rowtype;
index by binary_integer;
ename_table ename_table_type;
------
select * bulk collect into ename_table from emp;
------
4、多级集合
用法都差不多
4.1多级VARRAY
4.2多级嵌套表
4.3多级索引表
[@more@]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7916042/viewspace-909683/,如需转载,请注明出处,否则将追究法律责任。