C#、Oracle、Sql server中拼音查询的函数
2008-07-31 10:20
513 查看
C# sqlserver oracle 的都有 不过发现那个 C# 的好像"楠"字查的时候会有问题。。。不知道为啥。。
C#
1 public static string GetPinyinCode(string unicodeString)
7create or replace function fGetPy
2(V_Str varchar2)
3return varchar2
4as
5 v_strlen int;
6 v_return varchar2(500);
7 v_ii int ;
8 v_n int;
9 v_c char(1);
10 v_chn varchar2(2);
11 V_RC varchar2(500);
12begin
13 V_RC:=V_Str;
14
15 v_strlen :=len(V_RC);
16 v_return := '';
17 v_ii:=0;
18 while v_ii<v_strlen loop
19 v_ii:=v_ii+1;
20 v_n:=63;
21 SELECT substring(V_RC,v_ii,1) INTO v_chn FROM DUAL;
22
23
24 select v_n+max(rowsf) into v_n
25 from(
26 select chn,ROWNUM rowsf from(
27 select chn from (
28 select '吖' chn from dual
29 union select '八' from dual
30 union all select '嚓' from dual
31 union all select '咑' from dual
32 union all select '妸' from dual
33 union all select '发' from dual
34 union all select '旮' from dual
35 union all select '铪' from dual
36 union all select '丌' from dual--because have no 'i'
37 union all select '丌' from dual
38 union all select '咔' from dual
39 union all select '垃' from dual
40 union all select '嘸' from dual
41 union all select '拏' from dual
42 union all select '噢' from dual
43 union all select '妑' from dual
44 union all select '七' from dual
45 union all select '呥' from dual
46 union all select '仨' from dual
47 union all select '他' from dual
48 union all select '屲' from dual
49 union all select '屲' from dual
50 union all select '屲' from dual
51 union all select '夕' from dual
52 union all select '丫' from dual
53 union all select '帀' from dual
54 union all select v_chn from dual
55 ) a
56 order by nlssort(chn,'NLS_SORT=SCHINESE_PINYIN_M')
57 ) c
58 ) b WHERE chn=v_chn ;
59
60
61 v_c:=chr(v_n);
62 if chr(v_n) ='@' then--英文直接返回
63 v_c:=v_chn ;
64 end if;
65
66
67 v_return:=v_return||v_c;
68 end loop;
69
70 return v_return;
71end;
sql server
1create function fGetPy(@Str varchar(500)='')
2 returns varchar(500)
3 as
4 begin
5 declare @strlen int,@return varchar(500),@ii int
6 declare @n int,@c char(1),@chn nchar(1)
7
8 select @strlen=len(@str),@return='',@ii=0
9 set @ii=0
10 while @ii<@strlen
11 begin
12 select @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1)
13 select @n = @n +1
14 ,@c = case chn when @chn then char(@n) else @c end
15 from(
16 select top 27 * from (
17 select chn = '吖'
18 union all select '八'
19 union all select '嚓'
20 union all select '咑'
21 union all select '妸'
22 union all select '发'
23 union all select '旮'
24 union all select '铪'
25 union all select '丌' --because have no 'i'
26 union all select '丌'
27 union all select '咔'
28 union all select '垃'
29 union all select '嘸'
30 union all select '拏'
31 union all select '噢'
32 union all select '妑'
33 union all select '七'
34 union all select '呥'
35 union all select '仨'
36 union all select '他'
37 union all select '屲' --no 'u'
38 union all select '屲' --no 'v'
39 union all select '屲'
40 union all select '夕'
41 union all select '丫'
42 union all select '帀'
43 union all select @chn) as a
44 order by chn COLLATE Chinese_PRC_CI_AS
45 ) as b
46 set @return=@return+@c
47 end
48 return(@return)
49 end
C#
1 public static string GetPinyinCode(string unicodeString)
7create or replace function fGetPy
2(V_Str varchar2)
3return varchar2
4as
5 v_strlen int;
6 v_return varchar2(500);
7 v_ii int ;
8 v_n int;
9 v_c char(1);
10 v_chn varchar2(2);
11 V_RC varchar2(500);
12begin
13 V_RC:=V_Str;
14
15 v_strlen :=len(V_RC);
16 v_return := '';
17 v_ii:=0;
18 while v_ii<v_strlen loop
19 v_ii:=v_ii+1;
20 v_n:=63;
21 SELECT substring(V_RC,v_ii,1) INTO v_chn FROM DUAL;
22
23
24 select v_n+max(rowsf) into v_n
25 from(
26 select chn,ROWNUM rowsf from(
27 select chn from (
28 select '吖' chn from dual
29 union select '八' from dual
30 union all select '嚓' from dual
31 union all select '咑' from dual
32 union all select '妸' from dual
33 union all select '发' from dual
34 union all select '旮' from dual
35 union all select '铪' from dual
36 union all select '丌' from dual--because have no 'i'
37 union all select '丌' from dual
38 union all select '咔' from dual
39 union all select '垃' from dual
40 union all select '嘸' from dual
41 union all select '拏' from dual
42 union all select '噢' from dual
43 union all select '妑' from dual
44 union all select '七' from dual
45 union all select '呥' from dual
46 union all select '仨' from dual
47 union all select '他' from dual
48 union all select '屲' from dual
49 union all select '屲' from dual
50 union all select '屲' from dual
51 union all select '夕' from dual
52 union all select '丫' from dual
53 union all select '帀' from dual
54 union all select v_chn from dual
55 ) a
56 order by nlssort(chn,'NLS_SORT=SCHINESE_PINYIN_M')
57 ) c
58 ) b WHERE chn=v_chn ;
59
60
61 v_c:=chr(v_n);
62 if chr(v_n) ='@' then--英文直接返回
63 v_c:=v_chn ;
64 end if;
65
66
67 v_return:=v_return||v_c;
68 end loop;
69
70 return v_return;
71end;
sql server
1create function fGetPy(@Str varchar(500)='')
2 returns varchar(500)
3 as
4 begin
5 declare @strlen int,@return varchar(500),@ii int
6 declare @n int,@c char(1),@chn nchar(1)
7
8 select @strlen=len(@str),@return='',@ii=0
9 set @ii=0
10 while @ii<@strlen
11 begin
12 select @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1)
13 select @n = @n +1
14 ,@c = case chn when @chn then char(@n) else @c end
15 from(
16 select top 27 * from (
17 select chn = '吖'
18 union all select '八'
19 union all select '嚓'
20 union all select '咑'
21 union all select '妸'
22 union all select '发'
23 union all select '旮'
24 union all select '铪'
25 union all select '丌' --because have no 'i'
26 union all select '丌'
27 union all select '咔'
28 union all select '垃'
29 union all select '嘸'
30 union all select '拏'
31 union all select '噢'
32 union all select '妑'
33 union all select '七'
34 union all select '呥'
35 union all select '仨'
36 union all select '他'
37 union all select '屲' --no 'u'
38 union all select '屲' --no 'v'
39 union all select '屲'
40 union all select '夕'
41 union all select '丫'
42 union all select '帀'
43 union all select @chn) as a
44 order by chn COLLATE Chinese_PRC_CI_AS
45 ) as b
46 set @return=@return+@c
47 end
48 return(@return)
49 end
相关文章推荐
- C#、Oracle、Sql server中拼音查询的函数
- C#、Oracle、Sql server中拼音查询的函数
- 使用Oracle函数实现按汉字拼音首字母查询功能
- 使用ORACLE函数实现按汉字拼音首字母查询
- Oracle的汉字转拼音首字母的函数
- SQL server组合查询+sql常用函数
- Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
- Oracle---分组函数和多表查询
- Oracle 高级查询、事物、过程及函数
- SQL Server中取汉字拼音的函数
- (SQL SERVER) (ORACLE) (ACCESS)(POSTGRE SQL)四种数据库操作C#代码
- sql server与oracle 将字符串分割成表函数 strsplitetotable
- 汉字转拼音的Oracle函数
- SQL Server,Access数据库查询易混点和C#中parameter指定参数长度的优缺点
- (转)ORACLE/SQL SERVER中函数和存储过程的区别
- 在SQL Server 2005中连接Oracle,完成查询、插入操作
- oracle 函数WMSYS.WM_CONCAT()的用法(让查询结果行转列)
- Oracle 函数获取汉字拼音的首字母
- C#连接各类数据库Access、SQL Server、Oracle、MySQL、DB2代码集锦
- oracle高级查询,事物,过程及函数