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;
结果如下: