oracle函数查询数据字典

1. 定义数据字典表

create table EI_DICT
(
  id        VARCHAR2(32) not null,
  dic_type  VARCHAR2(32),
  dic_key   VARCHAR2(32),
  dic_value VARCHAR2(32),
  act_ind   VARCHAR2(1),
  sort_ord  NUMBER(3)
);
comment on column EI_DICT.act_ind
  is '激活状态 1激活 2未激活';
comment on column EI_DICT.sort_ord
  is '排序';

2. 插入测试数据

insert into ei_dict (ID, DIC_TYPE, DIC_KEY, DIC_VALUE, ACT_IND, SORT_ORD)
values ('1', 'test', 'zh', 'china', '1', 1);
insert into ei_dict (ID, DIC_TYPE, DIC_KEY, DIC_VALUE, ACT_IND, SORT_ORD)
values ('2', 'test', 'en', 'english', '1', 2);

3. 编写函数查询数据字典

CREATE OR REPLACE FUNCTION fn_dblookup(p_type IN VARCHAR2, p_key IN VARCHAR2) RETURN varchar2

IS dic_value VARCHAR2(64);

BEGIN
  SELECT dic_value INTO dic_value FROM ei_dict t WHERE t.dic_type=p_type AND dic_key=p_key;
RETURN (dic_value);

END fn_dblookup;

4. 测试结果

SELECT fn_dblookup('test','en') FROM dual;

结果如下:

 

posted @ 2019-04-19 10:48  许仙儿  阅读(1829)  评论(0编辑  收藏  举报