oracle-複合資料型別

rainbowbridg發表於2007-04-10
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部落格 ” ,連結:http://blog.itpub.net/7916042/viewspace-909683/,如需轉載,請註明出處,否則將追究法律責任。

相關文章