oracle 参数类型 存储过程 获取_Oracle存储过程-自定义数据类型,集合,遍历取值

0.前言

在Oracle的存储过程中,可能会遇到数据处理,假如我们目前的功能在一个Packages中

Packages封装了多个不同功能的Procedure,我们在一个Procedure里面进行统计

在另外一个Procedure进行计算 这就需要一个存放结果集的地方

以前的解决方案是:建立了一个临时表,数据统计出来后,放入临时表中

在另外一个Procedure中取出来数据,再进行计算 这样需要读写操作 浪费性能

我们可以使用Oracle的自定义数据类型去创建集合,进行操作

1.Packages

create or replace package test_lu is

-- Author : LUJIANING

-- Created : 2014-3-12 11:27:34

-- Purpose :

-- Public type declarations

procedure test1;

procedure test2;

procedure test3;

end test_lu;

2.Packages bodies

create or replace package body test_lu is

---创建一个自定义数据类型

TYPE c_user IS RECORD

( id number,

name varchar2(30)

);

---根据自定义数据类型创建一个集合

TYPE c_user_array IS TABLE OF c_user INDEX BY BINARY_INTEGER;

---集合对象

user_array c_user_array;

---数据对象

user c_user;

---计数器

v_counter number;

procedure test1 is

begin

user.id:=1;

user.name:='luu';

user_array(user.id):=user;

user.id:=2;

user.name:='lii';

user_array(user.id):=user;

end;

procedure test2 is

begin

for v_counter in 1..user_array.count loop

DBMS_OUTPUT.put_line(user_array(v_counter).id||'...'||user_array(v_counter).name);

end loop;

end;

procedure test3 is

begin

test1;

test2;

end;

end test_lu;

3.输出结果

1...luu

2...lii

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值