`

oracle之字符转字母

阅读更多

*、前情提要请查看

http://lbovinl.iteye.com/blog/2344405

 

    oracle拼音+字母-升级后源码:

CREATE OR REPLACE 
FUNCTION  "F_TRANS_PINYIN_CAPITAL_BY_BOVIN" (P_NAME IN VARCHAR2) RETURN VARCHAR2 AS
V_COMPARE VARCHAR2(100);
V_Z 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_Z :=SUBSTR(P_NAME, I, 1);
V_COMPARE := F_NLSSORT(SUBSTR(P_NAME, I, 1));
IF V_Z >= 'A' AND V_Z <='z' THEN
--数据库统一转成小写
--故开发时切记切记大小写匹配问题
V_Z := LOWER(V_Z);
V_RETURN := V_RETURN || V_Z;
ELSIF 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获取汉字拼音和拼音首字母的功能函数

    总的来说,Oracle中获取汉字拼音和拼音首字母涉及了字符编码、Java编程、自定义函数、第三方工具等多个方面。开发者可以根据具体的需求和环境,选择合适的方法来实现这一功能。在处理过程中,要注意字符集的兼容性、...

    oracle中操作字符串

    ### Oracle中操作字符串 在Oracle数据库中,对字符串进行处理是一项常见的需求,特别是在处理带有特定分隔符(如逗号`,`、冒号`:`等)的字符串时。本文将详细介绍如何利用Oracle内置函数来实现从含有逗号和冒号的...

    oracle生成拼音、五笔首字母的functions方法

    本文将详细介绍如何在Oracle中实现这一功能,主要基于提供的两个SQL脚本文件:`oracle生成五笔首字母的functions方法.sql`和`oracle生成拼音首字母的functions方法.sql`。 首先,我们来探讨拼音首字母的生成。在...

    Oracle_Sql_中常用字符串处理函数

    Oracle Sql 提供了 INITCAP() 函数,用于将字符串的首字母转换为大写。 示例:SELECT INITCAP('smith') FROM dual; -- 返回 Smith 10. 字符串查找函数 INSTR() Oracle Sql 提供了 INSTR() 函数,用于查找字符串中...

    oracle常用字符函数

    Oracle数据库系统提供了丰富的函数库,包括字符函数、日期函数、数据类型转换函数以及集合函数,以帮助用户在处理数据时实现各种复杂的操作。下面将详细解释这些函数的用途和使用方法。 1. **字符函数** - `LOWER...

    oracle,GBK,UTF-8字符集下获取拼音首字母_拼音截取等

    oracle,GBK,UTF-8字符集下获取拼音首字母_拼音截取等 oracle汉字转拼音package_获得全拼—GBK—拼音首字母_拼音截取 oracle汉字转拼音package_获得全拼—UTF8—拼音首字母_拼音截取 还实例。

    oracle批量修改汉字转拼音首字母的函数

    在Oracle数据库环境中,批量修改汉字转拼音首字母的需求常常出现在数据处理、索引优化或特定查询场景中。这里我们将深入探讨如何实现这个功能,并提供相关的函数和方法。 首先,我们需要理解汉字转拼音首字母的基本...

    oracle拼音首字母查询

    Oracle拼音首字母查询是一...总的来说,Oracle拼音首字母查询是一个结合了字符编码、数据库索引和字符串处理技术的复杂过程。正确地实施可以极大地提升中文数据的检索效率,但也需要根据具体需求和资源来权衡解决方案。

    汉字转全拼或首字母Oracle存储过程

    总结起来,"汉字转全拼或首字母Oracle存储过程"是一个利用PL/SQL实现的工具,它可以将汉字字符串转换为其全拼或首字母,这对于处理汉字数据和提升搜索效率具有重要意义。通过创建和使用这样的存储过程,我们可以灵活...

    oracle汉字转拼音package包-支持UTF8

    pinyin := oracle汉字转拼音package.get_pinyin('汉字字符串'); DBMS_OUTPUT.PUT_LINE(pinyin); END; / ``` 需要注意的是,由于汉字转拼音可能存在多种读音和多音字的情况,因此这个Package可能还需要提供一些...

    Oracle常用字符串处理函数

    -- 将字符串首字母大写 SELECT INITCAP('hello world') FROM dual; ``` #### 5. LENGTH `LENGTH` 函数用于返回字符串的长度。 - **函数格式**: - `LENGTH(string);` 其中: - `string`:需要获取长度的字符串...

    ORACLE字符串函数

    ORACLE 字符串函数 ORACLE 字符串函数是一组用于操作和处理字符串的函数,包括连接、截取、转换、查找、替换、去除空白等操作。 1. 字符串连接函数:`string || string` 该函数用于连接两个字符串,结果是一个新...

    完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数

    完整简洁的Oracle获得汉字字符串拼音首字母和全拼的函数 方案一(是方案二的包体方式)pinyin(拼音之间有空格) 方案二(较慢)常用中文字符转全拼音函数(有空格) 方案三(最优)完整简洁的Oracle获得汉字字符串拼音首字母...

    oracle字符集快速修改注册表

    总之,Oracle字符集的正确选择和管理对于数据库的正常运行至关重要。通过快速修改注册表,我们可以便捷地在不同字符集之间切换,满足与不同数据库的兼容性需求。在日常工作中,理解并掌握字符集的相关知识,能有效...

    oracle获取汉字拼音首字母

    在Oracle数据库中实现获取汉字拼音首字母的需求,通常涉及到对中文字符的处理以及拼音转换的技术。这样的功能可以应用于多种场景,例如数据排序、索引建立或是快速检索等。本文将详细介绍如何在Oracle环境中实现这一...

    oracle姓名中文转全拼函数

    Oracle姓名中文转全拼函数是解决在Oracle数据库中处理中文姓名时的一个常见需求,特别是考虑到汉字的多样性和复杂性,包括生僻字和多音字的处理。此函数旨在将中文姓名转换为全拼,方便进一步的数据处理或搜索。下面...

    oracle将汉字转换成拼音

    可以将oracle数据库中保存的中文转换成拼音,拼音首字母等

    Oracle字符串处理函数

    ### Oracle字符串处理函数详解 #### 1. ASCII ASCII函数用于返回给定字符的ASCII码值。例如: ``` SQL&gt; select ascii('A') A, ascii('a') a, ascii('0') zero, ascii(' ') space from dual; AAZERO SPACE ------...

Global site tag (gtag.js) - Google Analytics