oracle 获取汉字简拼,oracle自定义函数(全拼跟简拼)

oracle自定义函数(全拼和简拼)

1.全拼

CREATE OR REPLACE FUNCTION TOASPELL (Name in varchar2) return Varchar2 DETERMINISTIC is

Result varchar2(200);

r varchar2(200) ;

begin

p_spell(name ,r ,result) ;

return(result);

end toaSpell;

2.简拼

CREATE OR REPLACE FUNCTION TOSPELL (Name in varchar2) return Varchar2 DETERMINISTIC is

Result varchar2(200);

r varchar2(200) ;

begin

p_spell(name ,r ,result) ;

return(r);

end toSpell;

3.存储过程的实现

CREATE OR REPLACE PROCEDURE P_SPELL (

p_in_string in varchar2,

p_out_spell out varchar2,

p_out_aspell out varchar2

) is

--*******************************************************

--模块功能:对输入的汉字

--输入参数: p_in_string 输入字符串

--输出参数: p_out_spell 输出简拼

-- p_out_aspell 输出全拼

--*******************************************************

v_in_string varchar2(200);

v_in_char varchar2(200);

v_out_spell_temp varchar2(200);

v_out_spell varchar2(200);

v_out_aspell_temp varchar2(200);

v_out_aspell varchar2(200);

V_i integer;

v_ascii integer;

v_word_number integer;

begin

v_i := 0;

v_out_spell :=null;

v_out_aspell :=null;

v_in_string := ltrim(rtrim(p_in_string));

while (v_i

loop

v_i:=v_i+1;

v_in_char := Substr(v_in_string,v_i,1);

select ascii(v_in_char) into v_ascii from dual;

if v_ascii <> 32 then

select count(word) into v_word_number from spell where word = v_in_char;

if v_word_number>0 then

select spell into v_out_spell_temp from spell where word = v_in_char;

select aspell into v_out_aspell_temp from spell where word = v_in_char;

v_out_spell := v_out_spell || v_out_spell_temp;

v_out_aspell := v_out_aspell || v_out_aspell_temp;

end if;

end if;

end loop;

p_out_spell:=v_out_spell;

p_out_aspell:=v_out_aspell;

end P_SPELL;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值