加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

由数据字典codes集,获取数据字典names集--oracle方式

发布时间:2020-12-12 14:34:14 所属栏目:百科 来源:网络整理
导读://由数据字典codes集,获取数据字典names集--oracle方式CREATE OR REPLACE FUNCTION GET_DICNAMES_BY_DICCODES(srcValues IN VARCHAR2,splitvalue IN VARCHAR2,dictype in varchar2) RETURN VARCHAR2ISv_pos NUMBER;v_result VARCHAR2(2000) := '0';v_code V
//由数据字典codes集,获取数据字典names集--oracle方式
CREATE OR REPLACE FUNCTION GET_DICNAMES_BY_DICCODES(
srcValues  IN VARCHAR2,splitvalue IN VARCHAR2,dictype    in varchar2) RETURN VARCHAR2
IS
v_pos       NUMBER;
v_result    VARCHAR2(2000) := '0';
v_code      VARCHAR2(10);
v_codeName  VARCHAR2(40);
v_valuestmp varchar2(2000);
BEGIN
  v_valuestmp := srcValues;
  loop
    v_pos :=  instr(v_valuestmp,splitvalue,1,1);
    if v_pos =0 then
      v_code := v_valuestmp;
    else
       v_code :=  substr(v_valuestmp,v_pos-1);
    end if;
    begin
      select dic_name into v_codeName
        from dictionaryitem t
        where t.dic_type = dictype and dic_code = v_code;
    EXCEPTION
      WHEN OTHERS THEN
        v_codeName := v_code;
    end;
    if v_result = '0' then
       v_result := v_codeName;
    else
       v_result := v_result||','||v_codeName;
    end if;
    v_valuestmp := substr(v_valuestmp,v_pos+1);
    if v_pos = 0 then
        exit;
    end if ;
  end loop;
  RETURN v_result;
 EXCEPTION
    WHEN OTHERS THEN
      RETURN '';
END GET_DICNAMES_BY_DICCODES;


测试示例:

--select GET_DICNAMES_BY_DICCODES('01,02,03,04',','BUSI_TYPES') from dual;
输出结果: 01_消费,02_退款,03_转账,04_提现

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读