--这个函数在 ZHS16GBK字符集下编写
--一下在命令窗口执行,最好输入/会有建立成功 的提示
CREATE OR REPLACE FUNCTION F_PINYIN(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_PINYIN('函数已创建。 ') FROM DUAL; 输出HSYCJ
分享到:
相关推荐
在Oracle数据库中,处理汉字和拼音的场景时,有时我们需要获取汉字的拼音或者拼音首字母。这在构建中文搜索引擎、数据分析或报表展示等场景中非常有用。Oracle提供了一些内置的功能函数,可以用来实现这些需求。以下...
### Oracle 获取汉字拼音首字母 在Oracle数据库中实现获取汉字拼音首字母的需求,通常涉及到对中文字符的处理以及拼音转换的技术。这样的功能可以应用于多种场景,例如数据排序、索引建立或是快速检索等。本文将...
Oracle查询取汉字拼音首字母Function
在Oracle数据库中处理中文字符,特别是需要将汉字转换为拼音并获取首字母,是一个常见的需求。这在构建索引、搜索优化或者特定的数据处理场景中非常有用。本篇将详细探讨如何在Oracle环境下实现这个功能。 首先,...
本文将详细介绍如何在Oracle中实现这一功能,主要基于提供的两个SQL脚本文件:`oracle生成五笔首字母的functions方法.sql`和`oracle生成拼音首字母的functions方法.sql`。 首先,我们来探讨拼音首字母的生成。在...
在Oracle数据库环境中,有时我们需要对汉字进行处理,例如获取汉字的拼音或首字母,这在中文数据检索、排序或建立索引时非常有用。本文将详细介绍如何使用PL/SQL存储过程来实现这一功能。 首先,我们需要理解Oracle...
Oracle拼音首字母查询是一种在Oracle数据库中实现对汉字进行拼音首字母检索的技术。在中文环境中,为了方便用户根据汉字的拼音首字母进行快速查找,这种查询方式尤其有用。Oracle数据库虽然原生支持英文字符集,但...
oracle,GBK,UTF-8字符集下获取拼音首字母_拼音截取等 oracle汉字转拼音package_获得全拼—GBK—拼音首字母_拼音截取 oracle汉字转拼音package_获得全拼—UTF8—拼音首字母_拼音截取 还实例。
oracle汉字转拼音 获得全拼、拼音首字母、拼音截取等
oracle汉字转换成拼音首字母、全拼,各种转换类型比较齐全,oracle汉字转换五笔首字母链接https://blog.csdn.net/weixin_40912627/article/details/88710064
使用MySQL函数,实现获取汉字拼音首字母。在SQL语句中传入汉字返回对应的首字母
对于非数字字符(通常是汉字),使用`F_NLSSORT`函数获取其拼音排序值,并根据该值映射到对应的拼音首字母: ```sql V_COMPARE := F_NLSSORT(SUBSTR(P_NAME, I, 1)); IF V_COMPARE >= F_NLSSORT('߹') AND V_...
汉字转拼音是将汉字转换为对应的汉语拼音的过程,而获取首字母则是提取每个汉字拼音的第一个字母,通常是大写。在Oracle中,我们可以使用内置的UTL_I18N包或者自定义PL/SQL函数来实现这一转换。 UTL_I18N包中的`UTL...
在IT行业中,尤其是在数据库管理和开发领域,经常需要处理汉字字符并进行特定的处理,例如获取汉字字符串的首字母。这在实现快速搜索、拼音检索或输入首字完成模糊查询等功能时非常有用。标题中的"获得汉字字符串的...
用函数实现的取汉字的五笔头字母.简单实用.
--此函数默认返回汉字拼音的首字母,第二个参数不为空则返回全拼。 create or replace function f_getFirstOrFullSpell(p_cnStr In varchar2,p_sign In number default null) return varchar2 as lv_spell varchar2...
完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数 方案一(是方案二的包体方式)pinyin(拼音之间有空格) 方案二(较慢)常用中文字符转全拼音函数(有空格) 方案三(最优)完整简洁的Oracle获得汉字字符串拼音首字母...
本文将详细解析一个用于在Oracle中获取汉字拼音首字母的存储过程,该过程通过一系列精心设计的字符串转换逻辑实现。 ### 存储过程概述 存储过程名为`FUN_SPELLCODE`,它接受一个参数`PRM_SPELLIN`,类型为`VARCHAR...
在Oracle数据库环境中,有时我们需要对汉字进行处理,例如将其转换为全拼或首字母,以进行数据检索、索引优化等操作。在这种情况下,可以利用PL/SQL编写存储过程来实现这一功能。"汉字转全拼或首字母Oracle存储过程...
oracle数据库执行即可 select get_pinyin('XXXXX') FROM DUAL