Oracle函数中文转拼音(首字母)
CREATE OR REPLACE FUNCTION FUN_GET_PYCODE(p_str IN VARCHAR2,
p_flag NUMBER DEFAULT NULL)
RETURN VARCHAR2 AS
v_compare VARCHAR2(4);
v_return VARCHAR2(4000);
v_length INT := 0;
v_substr VARCHAR2(4); FUNCTION fn_nlssort(p_word IN VARCHAR2) RETURN VARCHAR2 AS
BEGIN
RETURN SUBSTR(NLSSORT(p_word, 'nls_sort=schinese_pinyin_m'), 1, 4);
END fn_nlssort;
BEGIN
IF p_str IS NULL THEN
RETURN '';
END IF; v_length := LENGTH(p_str); CASE p_flag
WHEN 1 THEN
--首字母小写
FOR i IN 1 .. v_length LOOP
v_substr := SUBSTR(p_str, i, 1);
v_compare := fn_nlssort(v_substr); CASE
WHEN v_compare BETWEEN '3B29' AND '3C82' THEN
v_return := v_return || 'a';
WHEN v_compare BETWEEN '3C84' AND '427C' THEN
v_return := v_return || 'b';
WHEN v_compare BETWEEN '427D' AND '4BA9' THEN
v_return := v_return || 'c';
WHEN v_compare BETWEEN '4BAD' AND '' THEN
v_return := v_return || 'd';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'e';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'f';
WHEN v_compare BETWEEN '573C' AND '5CB6' THEN
v_return := v_return || 'g';
WHEN v_compare BETWEEN '5CB8' AND '63FA' THEN
v_return := v_return || 'h';
WHEN v_compare = 'B359' THEN
v_return := v_return || 'i';
WHEN v_compare BETWEEN '63FE' AND '6E85' THEN
v_return := v_return || 'j';
WHEN v_compare BETWEEN '5BC8' AND '' THEN
v_return := v_return || 'k';
WHEN v_compare BETWEEN '722C' AND '7C98' THEN
v_return := v_return || 'l';
WHEN v_compare BETWEEN '569D' AND '821E' THEN
v_return := v_return || 'm';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'n';
WHEN v_compare BETWEEN '' AND '85AE' THEN
v_return := v_return || 'o';
WHEN v_compare BETWEEN '85B1' AND '89C4' THEN
v_return := v_return || 'p';
WHEN v_compare BETWEEN '7E0C' AND '90AA' THEN
v_return := v_return || 'q';
WHEN v_compare BETWEEN '90B0' AND '92E4' THEN
v_return := v_return || 'r';
WHEN v_compare BETWEEN '92E5' AND '9BA9' THEN
v_return := v_return || 's';
WHEN v_compare BETWEEN '' AND 'A1AE' THEN
v_return := v_return || 't';
WHEN v_compare BETWEEN '9AF0' AND 'A5D4' THEN
v_return := v_return || 'w';
WHEN v_compare BETWEEN 'A5D6' AND 'AF1E' THEN
v_return := v_return || 'x';
WHEN v_compare BETWEEN 'AF20' AND 'BC58' THEN
v_return := v_return || 'y';
WHEN v_compare BETWEEN 'BC59' AND 'C7B4' THEN
v_return := v_return || 'z';
ELSE
v_return := v_return || v_substr;
END CASE; END LOOP;
WHEN 2 THEN
--首字母大写
FOR i IN 1 .. v_length LOOP
v_substr := SUBSTR(p_str, i, 1);
v_compare := fn_nlssort(v_substr); CASE
WHEN v_compare BETWEEN '3B29' AND '3C82' THEN
v_return := v_return || 'A';
WHEN v_compare BETWEEN '3C84' AND '427C' THEN
v_return := v_return || 'B';
WHEN v_compare BETWEEN '427D' AND '4BA9' THEN
v_return := v_return || 'C';
WHEN v_compare BETWEEN '4BAD' AND '' THEN
v_return := v_return || 'D';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'E';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'F';
WHEN v_compare BETWEEN '573C' AND '5CB6' THEN
v_return := v_return || 'G';
WHEN v_compare BETWEEN '5CB8' AND '63FA' THEN
v_return := v_return || 'H';
WHEN v_compare = 'B359' THEN
v_return := v_return || 'I';
WHEN v_compare BETWEEN '63FE' AND '6E85' THEN
v_return := v_return || 'J';
WHEN v_compare BETWEEN '5BC8' AND '' THEN
v_return := v_return || 'K';
WHEN v_compare BETWEEN '722C' AND '7C98' THEN
v_return := v_return || 'L';
WHEN v_compare BETWEEN '569D' AND '821E' THEN
v_return := v_return || 'M';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'N';
WHEN v_compare BETWEEN '' AND '85AE' THEN
v_return := v_return || 'O';
WHEN v_compare BETWEEN '85B1' AND '89C4' THEN
v_return := v_return || 'P';
WHEN v_compare BETWEEN '7E0C' AND '90AA' THEN
v_return := v_return || 'Q';
WHEN v_compare BETWEEN '90B0' AND '92E4' THEN
v_return := v_return || 'R';
WHEN v_compare BETWEEN '92E5' AND '9BA9' THEN
v_return := v_return || 'S';
WHEN v_compare BETWEEN '' AND 'A1AE' THEN
v_return := v_return || 'T';
WHEN v_compare BETWEEN '9AF0' AND 'A5D4' THEN
v_return := v_return || 'W';
WHEN v_compare BETWEEN 'A5D6' AND 'AF1E' THEN
v_return := v_return || 'X';
WHEN v_compare BETWEEN 'AF20' AND 'BC58' THEN
v_return := v_return || 'Y';
WHEN v_compare BETWEEN 'BC59' AND 'C7B4' THEN
v_return := v_return || 'Z';
ELSE
v_return := v_return || v_substr;
END CASE; END LOOP;
ELSE
--首字母小写
FOR i IN 1 .. v_length LOOP
v_substr := SUBSTR(p_str, i, 1);
v_compare := fn_nlssort(v_substr); CASE
WHEN v_compare BETWEEN '3B29' AND '3C82' THEN
v_return := v_return || 'a';
WHEN v_compare BETWEEN '3C84' AND '427C' THEN
v_return := v_return || 'b';
WHEN v_compare BETWEEN '427D' AND '4BA9' THEN
v_return := v_return || 'c';
WHEN v_compare BETWEEN '4BAD' AND '' THEN
v_return := v_return || 'd';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'e';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'f';
WHEN v_compare BETWEEN '573C' AND '5CB6' THEN
v_return := v_return || 'g';
WHEN v_compare BETWEEN '5CB8' AND '63FA' THEN
v_return := v_return || 'h';
WHEN v_compare = 'B359' THEN
v_return := v_return || 'i';
WHEN v_compare BETWEEN '63FE' AND '6E85' THEN
v_return := v_return || 'j';
WHEN v_compare BETWEEN '5BC8' AND '' THEN
v_return := v_return || 'k';
WHEN v_compare BETWEEN '722C' AND '7C98' THEN
v_return := v_return || 'l';
WHEN v_compare BETWEEN '569D' AND '821E' THEN
v_return := v_return || 'm';
WHEN v_compare BETWEEN '' AND '' THEN
v_return := v_return || 'n';
WHEN v_compare BETWEEN '' AND '85AE' THEN
v_return := v_return || 'o';
WHEN v_compare BETWEEN '85B1' AND '89C4' THEN
v_return := v_return || 'p';
WHEN v_compare BETWEEN '7E0C' AND '90AA' THEN
v_return := v_return || 'q';
WHEN v_compare BETWEEN '90B0' AND '92E4' THEN
v_return := v_return || 'r';
WHEN v_compare BETWEEN '92E5' AND '9BA9' THEN
v_return := v_return || 's';
WHEN v_compare BETWEEN '' AND 'A1AE' THEN
v_return := v_return || 't';
WHEN v_compare BETWEEN '9AF0' AND 'A5D4' THEN
v_return := v_return || 'w';
WHEN v_compare BETWEEN 'A5D6' AND 'AF1E' THEN
v_return := v_return || 'x';
WHEN v_compare BETWEEN 'AF20' AND 'BC58' THEN
v_return := v_return || 'y';
WHEN v_compare BETWEEN 'BC59' AND 'C7B4' THEN
v_return := v_return || 'z';
ELSE
v_return := v_return || v_substr;
END CASE; END LOOP;
END CASE;
RETURN v_return;
END FUN_GET_PYCODE;
Oracle函数中文转拼音(首字母)的更多相关文章
- Oracle提取中文字符串拼音首字母函数
通过oracle的NLSSORT函数对汉字按照拼音排序,然后根据汉字的区间返回对应的首字母. 效果1,获取拼音简码: 效果2,获取姓名首字母: 创建函数: /* 获取拼音简码函数 */ CREATE ...
- php 获取中文字符拼音首字母
//php获取中文字符拼音首字母 function getFirstCharter($str){ if(empty($str)){return '';} $fchar=ord($str{}); }); ...
- php获取中文字符拼音首字母
//php获取中文字符拼音首字母 function getFirstCharter($str){ if(empty($str)){ return ''; } $fchar = ord($str{0}) ...
- js 获取中文的拼音首字母
es6 + 模块化封装 "use strict"; module.exports = { //参数,中文字符串 //返回值:拼音首字母串数组 makePy (str) { if ( ...
- C#&Sql获取中文字符拼音首字母的方法
C#获取字符拼音首字母,可以存储在数据库中以备将来按字母搜索的需求. public static string GetAc(string s) { try { string temp = Servic ...
- php 中文转拼音首字母问题
<?php /* 中文汉字转拼音首字母的PHP简易实现方法. 要求: 只能是GB2312码表里面中文字符 转换得到字符串对应的拼音首字母大写. 用法: echo zh2py::conv('Chi ...
- mysql 中将汉字(中文)按照拼音首字母排序
因为数据库中可以设定表的编码格式,不同编码格式下,中文的排序有区别,下面分别介绍常用编码下的排序方法. 1.如果数据表的某字段的字符编码是 utf8_general_ci,排序写法: ORDER BY ...
- Oracle的汉字转拼音首字母的函数
CREATE OR REPLACE FUNCTION F_PINYIN(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE VARCHAR2(100); ...
- javascript 实现中文按照拼音首字母排序
js提供了sort()方法来对数组内的数据进行排序,但是只是对英文有作用,这个时候需要自定义排序的规则 ['张三','李四','王五'].sort((a, b) => a.localeCompa ...
随机推荐
- 剑指Offer——数组中只出现一次的数字
题目描述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. 分析: 数组中一共有偶数个数.两个数字只出现过一次. 相同数异或在一起等于0,那么将所有数异或 ...
- leadcode 541. Reverse String II
package leadcode; /** * 541. Reverse String II * Easy * 199 * 575 * * * Given a string and an intege ...
- 汉诺塔IV---hdu2077
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2077 #include <stdio.h> #include <stdlib.h&g ...
- Sublime Text 中文
1.打开Sublime Text 2.Ctrl+Shift+P,输入Package Control: Install Package回车 3.输入LocalizedMenu,回车 4.点击菜单help ...
- javaScript 调用构造函数 Array() 时没有使用参数, length总是0
如果调用构造函数 Array() 时没有使用参数,那么返回的数组为空,length 字段为 0. 当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数.元素为 undefined 的数 ...
- Apache http server linux 安装过程说明
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sundenskyqq/article/details/24733923 PS:Apache http ...
- 机器学习第7周-炼数成金-支持向量机SVM
支持向量机SVM 原创性(非组合)的具有明显直观几何意义的分类算法,具有较高的准确率源于Vapnik和Chervonenkis关于统计学习的早期工作(1971年),第一篇有关论文由Boser.Guyo ...
- idea的junit测试出现Class not found: "com.chinaums.szm.test.RouteTransProxyClientTest" Empty test suite.
- XDU 1098 (欧拉函数模板题)
原题链接,点击此处 欧拉函数:φ(N)表示对一个正整数N,欧拉函数是小于N且与N互质的数的个数 通式:φ(x) = x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/p ...
- Java设计原则—依赖倒置原则(转)
依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义: 高层模块不应该依赖底层模块,两者都应该依赖其抽象: 抽象不应该依赖细节: 细节应该依赖抽象. 依赖倒置 ...