通过oracle数据库获取输入码

通过oracle数据库获取输入码

 1 create or replace function OF_GET_SRM(as_input in varchar2,
 2                                       as_lx     in varchar2)
 3   return varchar2 is
 4   Result varchar2(1000);
 5   ls_ch  varchar2(10);
 6   ls_chnew  varchar2(10);
 7 begin
 8   /*传入两个参数:源字符串,输入码类型(1,拼音,2,五笔,3,数字),返回出对应的汉字输入码*/
 9   /* 有多音字是木有办法识别的哈 */
10   /*wk 2013.5.06*/
11   if as_input is null or as_lx is null then
12     result := '';
13     return result;
14   end if;
15   
16   -- 依次处理as_Input中每个字符
17   Result := '';
18   
19   for i in 1..length(as_Input)
20   loop
21     
22     ls_ch := substr(as_Input, i, 1) ;
23     
24     IF Ascii(ls_ch) < 128  THEN -- 非汉字
25        Result := Result || ls_ch ; --不变
26     ELSE -- 是汉字
27        begin
28                  IF as_lx = '1' THEN -- 拼音码
29                     Select szsrm03 Into ls_chnew From yygl901 Where szsrm02 = ls_ch;
30                 ELSIF as_lx = '2' THEN -- 五笔码
31                     Select szsrm04 Into ls_chnew From yygl901 Where szsrm02 = ls_ch;
32                 ELSIF as_lx = '3' THEN -- 数字码
33                     Select szsrm05 Into ls_chnew From yygl901 Where szsrm02 = ls_ch;
34                 END IF;
35         exception
36           when others then
37             Result := Result || ls_ch ; --不变
38         end;
39                 Result := Result || ls_chnew ;  
40     END IF;
41     
42   end loop;
43 
44   return(Result);
45 end OF_GET_SRM;

 

转载于:https://www.cnblogs.com/szxiaofei14/articles/3782147.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值