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;

結果如下:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章