oracle汉字转换成拼音、五笔等

select ypmc,ch_code(ypmc,'pyCode',1,8) from yk_typk;
第二个参数:码类型(见下图)
第三个参数:从第几位开始截取
第四个参数:截取最大长度

 

ch_code函数脚本:

CREATE OR REPLACE FUNCTION "CH_CODE" (chStr    varchar2,
                                   codeType varchar2,
                                   len      Integer,
                                   maxLen   Integer) RETURN VARCHAR2 IS
  ch     VARCHAR2(4);
  code   varchar2(50);
  retStr VARCHAR2(100);
BEGIN
  for i in 1 .. length(chStr) loop
    ch := substr(chStr, i, 1);
    if REGEXP_INSTR(ch, '[a-zA-Z0-9]') > 0 or
       (REGEXP_INSTR(asciistr(ch), '[\u4E00-\u9FA5]') > 0 and
        substr(asciistr(ch), 1, 1) = '\') then
      if REGEXP_INSTR(ch, '[a-zA-Z0-9]') > 0 then
        retStr := retStr || ch;
      else
        begin
          execute immediate 'select ' || codeType ||
                            ' from pub_characterencoding t where t.hzcode = :1'
            into code
            using ch;
          retStr := retStr || substr(code, 0, len);
        exception
          when others then
            retStr := '';
        end;
      end if;
    end if;
  end loop;
  return substr(retStr, 0, maxLen);
exception
  when others then
    return '';
END;

pub_characterencoding 表中的数据:https://download.csdn.net/download/dhf984721977/10268879 进行下载

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值