标签:
目录[-]
在Oracle的存储过程中,可能会遇到数据处理,假如我们目前的功能在一个Packages中
Packages封装了多个不同功能的Procedure,我们在一个Procedure里面进行统计
在另外一个Procedure进行计算 这就需要一个存放结果集的地方
以前的解决方案是:建立了一个临时表,数据统计出来后,放入临时表中
在另外一个Procedure中取出来数据,再进行计算 这样需要读写操作 浪费性能
我们可以使用Oracle的自定义数据类型去创建集合,进行操作
create
or
replace
package test_lu
is
-- Author : LUJIANING
-- Created : 2014-3-12 11:27:34
-- Purpose :
-- Public type declarations
procedure
test1;
test2;
test3;
end
test_lu;
package body test_lu
---创建一个自定义数据类型
TYPE c_user
IS
RECORD
( id number,
name
varchar2(30)
);
---根据自定义数据类型创建一个集合
TYPE c_user_array
TABLE
OF
c_user
INDEX
BY
BINARY_INTEGER;
---集合对象
user_array c_user_array;
---数据对象
user
c_user;
---计数器
v_counter number;
test1
begin
.id:=1;
.
:=
‘luu‘
;
user_array(
.id):=
.id:=2;
‘lii‘
test2
for
v_counter
in
1..user_array.
count
loop
DBMS_OUTPUT.put_line(user_array(v_counter).id||
‘...‘
||user_array(v_counter).
loop;
test3
1...luu
2...lii
Oracle存储过程-自定义数据类型,集合,遍历取值
原文地址:http://www.cnblogs.com/Sugata/p/4318322.html