您的位置:首页 > 数据库 > Oracle

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

2017-04-27 10:43 591 查看
在写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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 内存 hashmap