ORACLE 实现加载配置到内存中,模仿java的hashmap功能

在写oracle的存储过程时,都会遇到一些业务逻辑,需要写Function,来实现一些业务,然后返回一个结果,而在使用这个Function的时候又是通过一句SQL来直接调用,但是如果在Function中有查询数据表读取配置或者其他业务逻辑的时候,实际上的实现原理会是一条记录查询一次配置表。如果再遇上数据量很大的时候,这样的语句执行就变得非常非常的慢了。这时会想,是否也能有像java程序中hashmap的方法,将配置数据加载到内存中呢?

下面就来介绍这个oracle的hashmap实现方法

--定义类型,作为加载数据的对象
 type t_hashmap_type is record(
    name varchar2(512));
 TYPE map_array IS TABLE OF t_hashmap_type INDEX BY varchar2(512); -- BINARY_INTEGER;
 v_HashMap map_array; 

--将配置数据加载到全局对象v_HashMap中
procedure proc_load_config is
    t_hashmap   t_hashmap_type;
    v_errtext  VARCHAR2(4000);
    cur_key varchar2(1024);
  begin
    for c_config in (select id,name
                       from test_table) loop

          t_hashmap.name := c_config.name;
          v_Domains(c_config.id) := t_hashmap;
    end loop;
  end proc_load_config;

取值方法

vconfig t_hashmap_type;
vconfig := v_HashMap(id);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值