CREATE
OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL (P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE VARCHAR2 (100) ; V_RETURN VARCHAR2 (4000) ; FUNCTION F_NLSSORT (P_WORD IN VARCHAR2) RETURN VARCHAR2 AS
BEGIN
RETURN NLSSORT (
P_WORD,
'NLS_SORT=SCHINESE_PINYIN_M'
) ;
END ;
BEGIN
FOR I IN 1..LENGTH (P_NAME) LOOP V_COMPARE := F_NLSSORT (SUBSTR(P_NAME, I, 1)) ;
IF V_COMPARE >= F_NLSSORT (' 吖 ')
AND V_COMPARE <= F_NLSSORT ('驁 ') THEN
V_RETURN := V_RETURN || 'a' ;
ELSIF V_COMPARE >= F_NLSSORT ('八 ')
AND V_COMPARE <= F_NLSSORT ('簿 ') THEN
V_RETURN := V_RETURN || 'b' ;
ELSIF V_COMPARE >= F_NLSSORT ('嚓 ')
AND V_COMPARE <= F_NLSSORT ('錯 ') THEN
V_RETURN := V_RETURN || 'c' ;
ELSIF V_COMPARE >= F_NLSSORT ('咑 ')
AND V_COMPARE <= F_NLSSORT ('鵽 ') THEN
V_RETURN := V_RETURN || 'd' ;
ELSIF V_COMPARE >= F_NLSSORT ('妸 ')
AND V_COMPARE <= F_NLSSORT ('樲 ') THEN
V_RETURN := V_RETURN || 'e' ;
ELSIF V_COMPARE >= F_NLSSORT ('发 ')
AND V_COMPARE <= F_NLSSORT ('猤 ') THEN
V_RETURN := V_RETURN || 'f' ;
ELSIF V_COMPARE >= F_NLSSORT ('旮 ')
AND V_COMPARE <= F_NLSSORT ('腂 ') THEN
V_RETURN := V_RETURN || 'g' ;
ELSIF V_COMPARE >= F_NLSSORT ('妎 ')
AND V_COMPARE <= F_NLSSORT ('夻 ') THEN
V_RETURN := V_RETURN || 'h' ;
ELSIF V_COMPARE >= F_NLSSORT ('丌 ')
AND V_COMPARE <= F_NLSSORT ('攈 ') THEN
V_RETURN := V_RETURN || 'j' ;
ELSIF V_COMPARE >= F_NLSSORT ('咔 ')
AND V_COMPARE <= F_NLSSORT ('穒 ') THEN
V_RETURN := V_RETURN || 'k' ;
ELSIF V_COMPARE >= F_NLSSORT ('垃 ')
AND V_COMPARE <= F_NLSSORT ('擽 ') THEN
V_RETURN := V_RETURN || 'l' ;
ELSIF V_COMPARE >= F_NLSSORT ('嘸 ')
AND V_COMPARE <= F_NLSSORT ('椧 ') THEN
V_RETURN := V_RETURN || 'm' ;
ELSIF V_COMPARE >= F_NLSSORT ('拏 ')
AND V_COMPARE <= F_NLSSORT ('瘧 ') THEN
V_RETURN := V_RETURN || 'n' ;
ELSIF V_COMPARE >= F_NLSSORT ('筽 ')
AND V_COMPARE <= F_NLSSORT ('漚 ') THEN
V_RETURN := V_RETURN || 'o' ;
ELSIF V_COMPARE >= F_NLSSORT ('妑 ')
AND V_COMPARE <= F_NLSSORT ('曝 ') THEN
V_RETURN := V_RETURN || 'p' ;
ELSIF V_COMPARE >= F_NLSSORT ('七 ')
AND V_COMPARE <= F_NLSSORT ('裠 ') THEN
V_RETURN := V_RETURN || 'q' ;
ELSIF V_COMPARE >= F_NLSSORT ('亽 ')
AND V_COMPARE <= F_NLSSORT ('鶸 ') THEN
V_RETURN := V_RETURN || 'r' ;
ELSIF V_COMPARE >= F_NLSSORT ('仨 ')
AND V_COMPARE <= F_NLSSORT ('蜶 ') THEN
V_RETURN := V_RETURN || 's' ;
ELSIF V_COMPARE >= F_NLSSORT ('侤 ')
AND V_COMPARE <= F_NLSSORT ('籜 ') THEN
V_RETURN := V_RETURN || 't' ;
ELSIF V_COMPARE >= F_NLSSORT ('屲 ')
AND V_COMPARE <= F_NLSSORT ('鶩 ') THEN
V_RETURN := V_RETURN || 'w' ;
ELSIF V_COMPARE >= F_NLSSORT ('夕 ')
AND V_COMPARE <= F_NLSSORT ('鑂 ') THEN
V_RETURN := V_RETURN || 'x' ;
ELSIF V_COMPARE >= F_NLSSORT ('丫 ')
AND V_COMPARE <= F_NLSSORT ('韻 ') THEN
V_RETURN := V_RETURN || 'y' ;
ELSIF V_COMPARE >= F_NLSSORT ('帀 ')
AND V_COMPARE <= F_NLSSORT ('咗 ') THEN
V_RETURN := V_RETURN || 'z' ;
END
IF ;
END LOOP ; RETURN V_RETURN ;
END ;
SELECT
F_TRANS_PINYIN_CAPITAL (
'湖北信业建设项目管理有限公司'
)
FROM
dual;

Oracle取得中文拼音首字母函数的更多相关文章

  1. excel 获取中文拼音首字母

      excel 获取中文拼音首字母 CreateTime--2018年5月31日08:50:42 Author:Marydon 1.情景展示 想要获取姓名的拼音首字母 2.实现方式 通过使用excel ...

  2. mysql、oracle 中按照拼音首字母排序

    mysql中按照拼音首字母排序 convert(name using gbk) ASC 注:name 为字段名称 oracle中按照拼音首字母排序 nlssort(enterprise_name,'N ...

  3. JS获取中文拼音首字母,并通过拼音首字母高速查找页面内的中文内容

    实现效果: 图一: 图二: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGVzdGNzX2Ru/font/5a6L5L2T/fontsize/400/f ...

  4. SqlServer 汉字转换拼音首字母函数

    CREATE function [dbo].[Func_GetPY](@str nvarchar(4000))returns nvarchar(4000)asbegin set @str=RTRIM( ...

  5. Oracle提取中文字符串拼音首字母函数

    通过oracle的NLSSORT函数对汉字按照拼音排序,然后根据汉字的区间返回对应的首字母. 效果1,获取拼音简码: 效果2,获取姓名首字母: 创建函数: /* 获取拼音简码函数 */ CREATE ...

  6. Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)

    一.先摆需求: 1.中文搜索.英文搜索.中英混搜   如:"南京东路","cafe 南京东路店" 2.全拼搜索.首字母搜索.中文+全拼.中文+首字母混搜   如 ...

  7. python 获取中文拼音首字母;判断文件夹是否存在

    1.如何获取中文字符串的首字母 import pinyin #输入name def get_pinyin_first_alpha(name): return "".join([i[ ...

  8. java获取中文拼音首字母

    import net.sourceforge.pinyin4j.PinyinHelper; public class PinyinHelperUtil { /** * 得到中文首字母(中国 -> ...

  9. sql获取汉字的拼音首字母的函数

    ql获取汉字的拼音首字母   if exists (select * from sysobjects where id = object_id(N'[fn_ChineseToSpell]') and ...

随机推荐

  1. Hibernate4.x之入门篇

    Hibernate作为一个优秀的持久化框架.ORM框架.在日常的Java开发中常常用到.本文主要通过一个简单的例子来介绍下Hibernate4.x的入门知识. 新建一个Java项目,并加入Hibern ...

  2. 远程调试树莓PI

    非官方 参考  http://linuxtortures.blogspot.jp/2012/06/cross-compiling-and-cross-debugging-c.html 注意: 建立 / ...

  3. Linux shell命令

    一.删除监听指定端口的进程: lsof -ti: 80 | xargs kill -9 -t: 输出pid -i:查看指定端口占用情况 二.查看可执行文件动态链接库相关信息 ldd <可执行文件 ...

  4. case中定义变量

    1.c语言switch/case中定义变量   case 0: int b = 0 ; printf("0");break; case 1: printf("1" ...

  5. 部分常用Express方法详解

    app.set(name, value) 分配给name一个value,并将name作为app settings table的一个属性. 使用app.set('foo', true) 相当于调用 ap ...

  6. Android 网络权限配置

    Android开发应用程序时,如果应用程序需要访问网络权限,需要在 AndroidManifest.xml 中加入以下代码 <uses-permission android:name=”andr ...

  7. Android字符串相关类 - CharSequence

    Class Overview CharSequence定义为public interface.该接口用于表示一个有序字符的集合,并在其中定义里了处理字符的方法. 已知的常用间接子类有String, S ...

  8. HDU-3487 Play with Chain Splay tee区间反转,移动

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3487 对于一个数列有两种操作:1.CUT a b c,先取出a-b区间的数,然后把它们放在取出后的第c ...

  9. 如何用Java编写一段代码引发内存泄露

    本文来自StackOverflow问答网站的一个热门讨论:如何用Java编写一段会发生内存泄露的代码. Q:刚才我参加了面试,面试官问我如何写出会发生内存泄露的Java代码.这个问题我一点思路都没有, ...

  10. gtest框架使用

    gtest文档说明: 由于公司单元测试的需要,自己花了大半天时间下载了一个gtest框架,使用了一些测试例子,总览了coderzh的玩转gtest测试框架,又看了几篇gtest博客,写下了以下内容,作 ...