create or replace function pro_f_getspell(vstr varchar2, --提交的字符串
vlen number) --返回字符串的长度
return varchar2 is
Result varchar2(100);
--根据提交的字符串 产生拼音码
ilen Number(4);
i Number(4);
srslt Varchar2(100);
irsltindex Number(10);
srsltindex Varchar2(2);
begin
Result := '';
ilen := length(vstr);
if ilen <= 0 Then
Return('');
End If;
srslt := '';
i := 1;
<>
Loop
Exit When i > ilen Or length(srslt) >= vlen;
srsltindex := substr(vstr, i, 1);
irsltindex := ascii(srsltindex);
If irsltindex <= 127 Then
srslt := srslt || srsltindex;
Else
If irsltindex = to_number('A1A2', 'xxxxx') Then --、
srslt := srslt || ',';
Elsif irsltindex = to_number('A1A3', 'xxxxx') Then --。
srslt := srslt || '.';
Elsif irsltindex = to_number('A1AE', 'xxxxx') Then --‘
srslt := srslt || chr(39);
Elsif irsltindex = to_number('A1AF', 'xxxxx') Then --’
srslt := srslt || chr(39);
Elsif irsltindex = to_number('A1B0', 'xxxxx') Then --“
srslt := srslt || '"';
Elsif irsltindex = to_number('A1B1', 'xxxxx') Then --”
srslt := srslt || '"';
Elsif irsltindex = to_number('A1B6', 'xxxxx') Then --《
srslt := srslt || '
Elsif irsltindex = to_number('A1B6', 'xxxxx') Then --》
srslt := srslt || '>';
Elsif irsltindex = to_number('A3A1', 'xxxxx') Then --!
srslt := srslt || '!';
Elsif irsltindex = to_number('A3A8', 'xxxxx') Then --(
srslt := srslt || '(';
Elsif irsltindex = to_number('A3A9', 'xxxxx') Then --)
srslt := srslt || ')';
Elsif irsltindex = to_number('A3AC', 'xxxxx') Then --,
srslt := srslt || ',';
Elsif irsltindex = to_number('A3B0', 'xxxxx') Then --"
srslt := srslt || '""';
Elsif irsltindex = to_number('A3BA',