ITPub博客

首页 > 数据库 > Oracle > oracle-复合数据类型

oracle-复合数据类型

原创 Oracle 作者:rainbowbridg 时间:2007-04-10 09:45:46 0 删除 编辑
Oracle学习笔记--复合数据类型
洛基 - BY - 2007-4-6 14:54:00
1、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博客 ” ,链接:https://blog.itpub.net/7916042/viewspace-909683/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: java教程下载
请登录后发表评论 登录
全部评论
  • 博文量
    237
  • 访问量
    1622819