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;
分享到:
相关推荐
总的来说,实现Oracle中批量修改汉字转拼音首字母的功能,需要对Oracle的内置函数有深入了解,并可能涉及到自定义PL/SQL函数的编写。这个过程可能涉及到字符编码、Unicode转换以及对多音字的处理,是一个涉及多方面...
以下我们将详细探讨如何在Oracle中获取汉字的拼音和拼音首字母。 1. **UCS2编码与字符转换** Oracle数据库支持多种字符集,其中UCS2(Unicode Character Set with 2 bytes per character)编码能够存储包括汉字...
--此函数默认返回汉字拼音的首字母,第二个参数不为空则返回全拼。 create or replace function f_getFirstOrFullSpell(p_cnStr In varchar2,p_sign In number default null) return varchar2 as lv_spell varchar2...
Oracle中进行汉字转换成拼音,通过参数不同可以返回拼音首字母或全拼: --调用方式: SELECT f_getSpell('江西') from dual; --返回 'jx' --SELECT f_getSpell('江西',0) from dual; --返回 'jiangxi'
oracle创建函数生成拼音码(汉字首字母)
Oracle查询取汉字拼音首字母Function
本文将详细介绍如何在Oracle中实现这一功能,主要基于提供的两个SQL脚本文件:`oracle生成五笔首字母的functions方法.sql`和`oracle生成拼音首字母的functions方法.sql`。 首先,我们来探讨拼音首字母的生成。在...
总结起来,"汉字转全拼或首字母Oracle存储过程"是一个利用PL/SQL实现的工具,它可以将汉字字符串转换为其全拼或首字母,这对于处理汉字数据和提升搜索效率具有重要意义。通过创建和使用这样的存储过程,我们可以灵活...
完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数 方案一(是方案二的包体方式)pinyin(拼音之间有空格) 方案二(较慢)常用中文字符转全拼音函数(有空格) 方案三(最优)完整简洁的Oracle获得汉字字符串拼音首字母...
### Oracle汉字转拼音函数知识点详解 #### 一、概述 在Oracle数据库中,有时需要将汉字转换成拼音,尤其是在处理中文数据时。本篇文档详细介绍了两种用于转换汉字到拼音的自定义函数:`fn_getpyKGJG` 和 `fn_...
### Oracle汉字拼音首字母函数详解 #### 一、概述 在数据库处理中文数据时,有时候我们需要根据汉字转换成对应的拼音首字母来进行检索或排序。Oracle提供了多种方式来处理字符串,但针对汉字转拼音首字母的功能并...
使用MySQL函数,实现获取汉字拼音首字母。在SQL语句中传入汉字返回对应的首字母
在Oracle数据库中实现获取汉字拼音首字母的需求,通常涉及到对中文字符的处理以及拼音转换的技术。这样的功能可以应用于多种场景,例如数据排序、索引建立或是快速检索等。本文将详细介绍如何在Oracle环境中实现这一...
这里提到的"oracle提取汉字拼音和首字母"可能是一个PL/SQL包,包含了一系列的函数,用于将汉字转换为对应的拼音和首字母。 1. **汉字转拼音** 汉字转拼音的过程通常涉及到文本解析和字符串操作。这个PL/SQL存储...
Oracle拼音首字母查询是一种在Oracle数据库中实现对汉字进行拼音首字母检索的技术。在中文环境中,为了方便用户根据汉字的拼音首字母进行快速查找,这种查询方式尤其有用。Oracle数据库虽然原生支持英文字符集,但...
本文将详细讲解如何在Oracle中实现获取汉字的拼音和拼音首字母的功能。 首先,我们要知道Oracle并不内置直接支持汉字转拼音的函数。但是,我们可以利用一些额外的资源,比如创建存储过程或者使用第三方的PL/SQL包来...
这个函数的主要目标是从输入的汉字串中提取每个汉字的拼音首字母,并将它们连接成一个新的字符串返回。 ### 字符映射与转换逻辑 该存储过程的核心在于预定义的一组字符映射表。这些映射表(如`V_STDSTR`、`V_CHARA...
Oracle姓名中文转全拼函数是解决在Oracle数据库中处理中文姓名时的一个常见需求,特别是考虑到汉字的多样性和复杂性,包括生僻字和多音字的处理。此函数旨在将中文姓名转换为全拼,方便进一步的数据处理或搜索。下面...
oracle汉字转拼音函数,支持拼音大小写,首字母
此函数同样采用了循环遍历每个字符的方式,但与GBK版本不同的是,这里利用了Oracle内置的`NLSSORT`函数来获取每个汉字的拼音排序码,从而间接地实现汉字到拼音首字母的转换。 核心步骤如下: 1. 遍历输入字符串中的...